• 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包,但你的应用server(容器) 包括了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 共勉!




  • 相关阅读:
    PDF上添加水印
    java调用POI读取Excel
    搭建Linux的VMware Workstation Pro
    js中两种定时器的设置及清除
    SUI使用经验
    List集合与Array数组之间的互相转换
    jquery操作select
    jquery操作CheckBox
    时间格式
    java 获取路径的各种方法
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7015950.html
Copyright © 2020-2023  润新知