今天上线,测试测试需求的时候,发现了这个异常,可是实际上自己没有修改这里。
查看日志,只有上层的异常,实际上标题的异常根本就没有抛出来,通过排查发现的这个异常。
排查步骤
-
本地单测不会报错,这就奇怪了,测试,预生产,生产都有问题
-
通过查看项目依赖,找到了cglib和cglib-nodep两个包
-
进入两个BeanCopier的实现,打断点,发现没有进入cglib的断点,只进入cglib-nodep的java类中,然后本地success,没有问题。
-
所以确认问题是cglib包的问题,打开dependences依赖,直接单击右键,exclude,排除包
-
部署测试,测试验证,没问题。
NoClassDefFoundError这种异常经常是编译启动,其他接口没有问题,只有运行时候有问题,说明是类冲突。
复盘
最后查看了项目提交记录,引入了其他项目组的包,结果其中就有cglib,这个锅还是我搞出来的,我的妈呀。然后影响了接口。。
参考
- https://blog.csdn.net/wzb56/article/details/53044386
- http://stackoverflow.com/questions/15751453/java-lang-noclassdeffounderror-could-not-initialize-class-net-sf-cglib-proxy-en
转载请注明链接地址: » BeanCopier java.lang.NoClassDefFoundError net.sf.cglib.beans.BeanCopierBeanCopier net.sf.cglib.beans.BeanCopier 有问题