码迷,mamicode.com
首页 > 编程语言 > 详细

Java.Lang.NoSuchMethod 错误

时间:2015-07-10 00:27:43      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:nosuchmethod   java   bug   


项目开发,调用webservice,方法调用报了 Java.Lang.NoSucheMethod..........,印象中记得是jar包冲突,maven项目,一看,这一堆jar包...用eclipse的pom可视化界面,Dependency Hierarchy 看到了不少包冲突,先从webservice 依赖的jar开始,顺着这一思路,一顿排除,没管用。


网上搜了几篇文章,梳理了下解决问题的思路:

1、你调的类里缺少该方法,可能是由于jar包的版本不对

2、项目依赖的jar包,A包和B包有相同的类(比如a类),你的目标是调用A包a类,结果被后加载的B包覆盖了,结果无意中调用了B包a类

3、项目虽然只有A包,但你的应用服务器(容器) 包含了B包,他们含有相同的类。从网上得知在weblogic9.2中发布cxfwebservice有这一问题


       既然是这样,就不从刚猜测的jar包冲突入手,而是从缺少方法的类入手,追本溯源。

先看我碰到的错误内容:

javax.servlet.ServletException: java.lang.NoSuchMethodError: **.**.client.clientbean.ServiceSoap.getOrderById(JZLjava/util/List;)L**/**/client/clientbean/Order;

这句话有类路径,在加上异常里提供的堆栈信息,应该能快速定位到哪个包里的哪个类。到类里看一眼,有没有你要调用的方法(这里是getOrderById)。没有的情况一般很少,包里没方法,在写代码的时候估计也不会调用这个方法。

如果有,那么看看别的包里是否也存在同样的包,同样的类。我今天遇到的错误就是这样的:oom包有ServiceSoap,order包还有ServiceSoap,在判断oom包未用到,之后,果断排了,bug解决了。


增加知识广度和深度,耐心分析应该是快速解决bug的法门所在,everyone 共勉!




版权声明:本文为博主原创文章,未经博主允许不得转载。

Java.Lang.NoSuchMethod 错误

标签:nosuchmethod   java   bug   

原文地址:http://blog.csdn.net/xqf309/article/details/46823205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!