初学Struts+Hibernate+Spring整合
eclipse 7
struts 1.3
spring 2.5
hibernate 3.2
作了个练习
启动tomcat时:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;
搜了很多网页,看了不少方案,都无法解决。
[b]问题补充:[/b]
查的时候都说是jar 文件发生了版本冲突,主要试了下面三种方法。都没有作用
1.
移除asm.jar或asm-2.2.3.jar
2.
去掉类路径上的关于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.3.jar
asm-util-2.2.3.jar
cglib-nodep-2.1_3.jar
3.
删除 asm-*.jar (asm-2.2.3.jar、asm.jar、asm-attrs.jar、asm-commons-2.2.3.jar、asm-util-2.2.3.jar)
删除 cglib-2.1.3.jar
添加 asm-all-3.0.jar
你再确认下服务器下的jar包
包括tomcat自己的lib
和项目的lib
有可能是发布到服务器之后的问题
我之前遇到过
把服务器的clean一下
重新发布就ok了
加的Jar包有问题。
请检查,而且你说的搜了很多网页。
我不相信。
[code="java"]nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String; [/code]
这个异常是参数不匹配。
应该是spring和hibernate整合的时候加的包冲突了!基本上就是删除lib目录下的asm-2.2.3.jar这个包,应该没有什么问题了!
Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 检查下asm-(version).jar这个jar包是否存在不同的版本。