java.lang.NoClassDefFoundError问题

调整框架依赖后进行回归测试,报出一个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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 1,716评论 0 3
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,926评论 6 342
  • 1、运行环境 主机IP 主机名 2、配置主机名(分别在五台机器上执行) hostname +主机名例如: h...
    献给记性不好的自己阅读 3,581评论 0 6