问题描述
- java.lang.NoSuchMethodError: ..Ljava/lang/Integer;
-
2015-2-27 13:21:47 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodError: cn.act.ict.software.domain.Tablestaff.getLeavingDayCnt()Ljava/lang/Integer;
at cn.act.ict.software.action.LeavingotAction.leavingot_requestBySelf(LeavingotAction.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
解决方案
我这是在部署到服务器上出现的这个问题,并且我只把我修改过的东西上传了上去,其他的什么都没动,可就这样他突然报了一个两年都没动过的文件的一个bug。
看到这个问题我直接就抓住第一个错误NoSuchMethodError,就觉得是找不到这个方法,一直在这个方法上浪费时间(其实这个方法是存在的),网上都说jar有问题,但是jar我一直都没动过,也没有重复的jar。直到我改不出来了,把问题交给了我的组长。我组长首先也是看第一个错误NoSuchMethodError,然后那服务器上的和我本地对比,发现了一个问题,我这边跟服务器上一个是Integer一个是int类型,最后我把我的这个文件重新部署上去,没有成功。然后组长又发现其实重点应该放在下面一行at cn.act.ict.software.action.LeavingotAction.leavingot_requestBySelf(LeavingotAction.java:562), 最终发现在这一行,有一个判断,这个判断是拿一个Integer类型的变量和一个int类型的变量用==比较(问题的关键),最后我将Integer转换成了int(intValue())然后再比较,再次上传服务器,没问题了
时间: 2024-11-03 21:20:34