Java.Lang.NoSuchMethod 错误

项目开发,调用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 共勉!

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

时间: 2024-08-14 20:20:08

Java.Lang.NoSuchMethod 错误的相关文章

使用Flash Builder 4.6出现 新建配置 失败 java.lang.NullPointerException错误

当看到这个错误的时候有点莫名奇妙的感觉,随后的第一反应是: 这跟我前些天安装的java的jre 1.8 有没有关联性.修改了设定,方法如下 “运行” -> “外部工具” -> “外部工具 配置” ->  点击Ant构建下面的第一个子选项“新建配置”  右边会出现有“JRE”的字样,单击它.然后点击“已安装 JRE”,之后的配置是将JRE的文件地址改为和 环境变量中的“JAVA_HOME”的值(记得将原来的地址复制到 文档中保存起来,切记).然后调试,仍然还是无用,报相同的错误.  结果以

【eclipse】 怎么解决java.lang.NoClassDefFoundError错误

前言 在日常Java开 发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类 明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和 java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的.我们往往花费时间去不断尝试一些其他 的方法去解决这个问题,而没有真正去理解这个错误的原因.这篇文章就是通过解决NoC

java.lang.NoClassDefFoundError 错误

练习jfianl,,,配置数据库插件的时候遇到: java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/ComboPooledDataSource 解决办法: 导入 c3p0jar 包. java.lang.NoClassDefFoundError与java.lang.ClassNotfoundException错误比较: 后者是 详情: http://blog.csdn.net/jamesjxin/article/details/4660630

关于使用JAVA正则表达式报java.lang.StackOverflowError错误问题

最近在使用hadoop做apache日志分析,发现测试数据没问题,但数据一多就出问题,报 java.lang.StackOverflowError错误,最后定位为正则表达式栈溢出,发现某些行的日志数据长度超过了800,所以就会报这个错误, 最后的解决方案是把这一小部分数据舍去掉. 添加如下代码 String log = value.toString(); if(log.length()>=800) return; 在map阶段读入每一行的时候先判断这一行的长度,如果长度超过了800就不对这一行进

eclipse报An error has occurred,See error log for more details. java.lang.NullPointerException错误

eclipse报An error has occurred,See error log for more details. java.lang.NullPointerException错误,解决办法: 在"开始"-->"运行"---->"cmd"进入命令提示行后,再进入eclipse安装目录的eclipse文件夹,         然后输入eclipse -clean即可

解决parseSdkContent failed java.lang.NullPointerException错误

今天我的eclipse崩溃了,报“parseSdkContent failed java.lang.NullPointerException”的错误. 所有的安卓项目都不正常,创建项目就会报 java.lang.NullPointerException的错误.后来上网搜到了解决办法, 办法就是,把项目的存储路径下的.metadata(即:workspace\.metadata)文件删了就行了.但重新打开 eclipse,你的原工作路径下的工程也都不存在.那你就重新导入原工作路径下的所有工程. 解

出现java.lang.UnsupportedClassVersionError 错误的原因

出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误. 因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同.这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误. 在ubuntu下的解决方法是 在 ht

Myeclipse10.6装好了Aptana插件之后,启动都会报弹出对话框报java.lang.NullPointerException错误

Myeclipse10.6装好了Aptana插件之后,启动都会报弹出对话框报java.lang.NullPointerException错误,windows->Preferences->My Aptana/Message Center-> "Use Firefox as the Aptana Home Page Browser",去掉勾就可以了.

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法

上面那个问题刚解决,就又来一个问题~~~~ 错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException 网上有不少解决办法 一般都会在Activity  onCreate()方法里的setContentView(XXX)发生此错误,网上查阅了很多原因,大概有四种重要可能的原因: 原因一:xxx的错误,若为R.layout.main