今天优化一个很老的项目,结果项目启动出现了错误:
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) ~[cglib-2.1.3.jar:na]
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) ~[cglib-2.1.3.jar:na]
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) ~[hibernate-3.2.6.ga.jar:3.2.6.ga]
根据提示,是cglib库影响的,看到lib目录和WEB-INF的lib目录下面的俩cglib的jar包版本不一致。删除低版本的解决问题。
解决CGlib版本冲突
本文描述了一个因CGlib不同版本导致的项目启动错误,并详细记录了错误堆栈跟踪。问题出现在旧项目中,由于lib目录下存在两个不同版本的CGlib jar包。通过删除低版本的CGlib jar包,成功解决了此问题。
212

被折叠的 条评论
为什么被折叠?



