美文网首页
java.lang.NoClassDefFoundError问题

java.lang.NoClassDefFoundError问题

作者: blueSkyBird | 来源:发表于2017-12-27 08:50 被阅读0次

    调整框架依赖后进行回归测试,报出一个bug。点击功能按钮时,抛出异常:
    Could not initialize class com.hletong.service.cdm.insurance.service.freight.types.ApprovalRequest.是在创建对象时报的错,报错代码如下:


    clipboard.png

    开始怀疑有人移动了ApprovalRequest类的目录,导致找不到该类。后来查看代码目录,结构没被人动过。点击进该对象。该对象存在静态变量,怀疑是在第一次初始化时,加载静态变量的过程中发生了报错,重启项目,再次点击功能按钮,报错信息如下:


    clipboard.png

    axis的jar包中的logFactory使用到org/apache/commons/discovery包中的DiscoverSingleton类,discovery包在调整框架时,被移除。导致在运行时报错。

    有意思的是只有第一次的时候会报:
    org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton

    第二次以后就报:
    Could not initialize class com.hletong.service.cdm.insurance.service.freight.types.ApprovalRequest

    原因是类加载时静态变量只会在第一次加载时,进行初始化,此后不管成不成功,都不会进行第二次初始化了。

    相关文章

      网友评论

          本文标题:java.lang.NoClassDefFoundError问题

          本文链接:https://www.haomeiwen.com/subject/pruygxtx.html