今天在导入一个项目时遇到问题:
Error creating bean with name ‘sessionFactory’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is
java.lang.NoSuchMethodError:org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
找了半天才找到解决的办法,所以今天就把这个方法记录下来:
1. 首先,打开部署的项目,点击项目然后右键->点击文件夹打开(或是按照图中的1的地方点击打开文件夹,如图左侧所示)->点击WEB-INF文件夹(按照图中的2的地方)
2. 打开文件夹后,找到lib文件夹,点击打开(点击图中的红色框)
3. 打开lib文件夹后,找到asm-2.2.3.jar文件,然后删除该文件
4. 然后关闭文件夹,重新部署项目,启动服务,这时错误就好啦!
5. 这是第一种方法,还有另外两种方法,如下(只给出思路,就不写过程啦):
第二种方法:
从网上下一个最新的asm-all-3.0.jar的jar包,然后把原来的关于Hibernate的所有asm开头的jar包全部删掉,还有一个cglib-2.1.3.jar也删掉.->重新部署工程,OK!
第三种方法:
去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
再加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar