1.xfire 中存在旧的Spring.jar 要删除;
2.hiberante 与 Spring asm的冲突
由于cglib-2.1.3 依赖的asm 跟在外边的asm版本不一致导致,
把cglib换成 cglib-nodep版本的就可以了
删除hibernate 中的cglib-2.1.3 即可
ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.
asm-2.2.3.jar
asm.jar
asm-attrs.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
今天为java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V错误真花了我大量的时间去找这个问题,在网上也找到了不少的解决的办法,但不知道为什么不能解决我的问题,也不知道是不是我用的工具的问题哟,不过综合找到的现在终于找到了,虽然花了不少的时间,但还是很高兴,本来不想把这个问题写上来的,因为网上有太多的解决方法,不过我觉得很有必要,解决方法如下:
当你把spring包和hibernate相应包打进项目里,然后在打包的文件里把把
asm.jar,asm-attrs.jar,cglib-2.1.3.jar三个文件从项目里导出,并删掉就OK了
由于cglib-2.1.3 依赖的asm 跟在外边的asm版本不一致导致,
把cglib换成 cglib-nodep版本的就可以了
文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javajs/2008315/104668.html)0023:.:0:3:14=4ae67fba:16=4
xfire+jawxs冲突问题:
3:Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/xfire/jaxb2/JaxbWSDLBuilderFactory
处理:
移掉xfire下的xfire-jaxws-1.2.6.jar