开发者社区> 问答> 正文

idea编译打包结果和eclipse编译打包结果不同? 400 报错

idea编译打包结果和eclipse编译打包结果不同? 400 报错

同样的代码,在idea里跑的时候就会出错,在eclipse里面就没有问题,通过idea发布的也有问题,而通过eclipse发布的就没有,请问这个怎么解决?

代码如下,在idea中,第18行会报错,java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean Cannot be cast to Request。但是在eclipse中就可以

public static JsonClient jsonToClient(String clientJsonString) throws Exception{
		JsonClient jsonClient  = new JsonClient();
		//实际返回client对象
		Client client = new Client() ;
		List<Request> requestList = new ArrayList<Request>();
		
		JSONObject clientJsonObject = JSONObject.fromObject(clientJsonString.replaceAll("\\t", ""));
		jsonClient = (JsonClient)JSONObject.toBean(clientJsonObject, JsonClient.class);
        //解析client
		Client tempClient = (Client)JSONObject.toBean(JSONObject.fromObject(jsonClient.getClient()), Client.class);
		
		BeanUtils.copyProperties(tempClient, client, new String[]{"requests"});
		//为防止下面代码出现错误,先将client组织到JSONClient中
		jsonClient.setClient(client);
		//获取request的list			
		List<Request> tempRequestList = tempClient.getRequests();
		//解析request
		for (Object requestObject : tempRequestList) {
			Request clientRequest = new Request();
			Request tempRequest = (Request) JSONObject.toBean(JSONObject
					.fromObject(requestObject), Request.class);
			String command = tempRequest.getCommand();
			//判断是否存在这个command
			if(AppServerCommon.COMMAND_INPUTDATA.containsKey(command)){
				Class<?> command_inputdata = AppServerCommon.COMMAND_INPUTDATA.get(command);
				
				Object inputData  = JSONObject.toBean(JSONObject.fromObject(tempRequest.getInputData()),command_inputdata);
				
				//组织RequestList
				BeanUtils.copyProperties(tempRequest, clientRequest, new String[]{"inputData"});
				clientRequest.setInputData(inputData);
				requestList.add(clientRequest);
			}else{
				logger.error("不支持command:" + command);
				clientRequest.setCommand(command);
				requestList.add(clientRequest);
			}
		}

展开
收起
爱吃鱼的程序员 2020-06-03 14:51:20 561 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    同问.

    在用JActor时, 也出现过这样的问题. Eclipse能编译, Idea却报错. 而且程序还能正确运行的.

    ######

    eclipse有自己的编译器。所以有些静态信息在编译过程中保留下来了。比方说方法中的变量名。

    不信你用ant javac编译你的程序一定还会出错。

    你这个是GWT的项目?,也许是少了一些编译环节了吧?

    ######ant编译不报错######

    eclipse使用的自己的编译器 ecj 编译的

    IDEA是用的javac 编译的。

    某些情况下可能存在问题,ecj 编译的代码兼容性好,javac编译要严格点


    ######

    首先,这个和编译器神马的没有太大关系 .

    其次, 主要的原因是IDEA 用的是 MAVEN 编译, 

    出现这个问题应该是你POM.XML文件中的引用没有配置正确.

    主要可能是此类的项目没有在文件中声明或者是在多个项目中存在冲突

    又或者是这个缺少的类对应的JAR包版本不对.

    解决方法就是仔细检查POM.XML文件中的项目内容.

    ######我怎么没找着pom.xml文件?..######检查一下JDK的版本。
    2020-06-03 17:13:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关镜像