java.lang.NoClassDefFoundError问题

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


clipboard.png

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


java.lang.NoClassDefFoundError问题_第1张图片
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问题)