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