java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
如何来解决这个问题了?
是因为spring和hibernate的asm包冲突了。
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
解决方法一:如果你jar包都在WEB-INF/lib,那么你就可以删除hibernate的三个Jar(asm.jar,asm-attrs.jar,cglib-2.1.2.jar)包就行了或者spring的。[color=red]一定要注意,在tomcat下面删除部署的项目,在重新部署[/color]。
解决方法二:jar包不在lib下,在buildpath上。那么你Window -->Preferences.. -->My Eclipse Enterprise Workbench --> Project Capabilities -->spring
选择project所采用的spring版本,如spring 2.5 (在AOP中)选项卡,选中asm2.2.3.jar,remove掉 就可以了。
一定要注意看tomcat部署后这些文件是否去掉!!!!!!
如何来解决这个问题了?
是因为spring和hibernate的asm包冲突了。
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
解决方法一:如果你jar包都在WEB-INF/lib,那么你就可以删除hibernate的三个Jar(asm.jar,asm-attrs.jar,cglib-2.1.2.jar)包就行了或者spring的。[color=red]一定要注意,在tomcat下面删除部署的项目,在重新部署[/color]。
解决方法二:jar包不在lib下,在buildpath上。那么你Window -->Preferences.. -->My Eclipse Enterprise Workbench --> Project Capabilities -->spring
选择project所采用的spring版本,如spring 2.5 (在AOP中)选项卡,选中asm2.2.3.jar,remove掉 就可以了。
一定要注意看tomcat部署后这些文件是否去掉!!!!!!