`

[转]spring和Hibernate整合时候的asm包冲突

阅读更多
转载自 李晨专区
最终编辑 李晨专区

 

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;[Ljava/lang/String;Ljava/lang/String;)VCaused by: 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的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

 

解决方法

1.去掉 类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.2.jar
2.加入 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

自己的一个小测试: (运行环境:apache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2 )

整合ssh项目中, 在 Tomcat 部署的环境中 D:\tomcat\webapps\my\WEB-INF\lib 发生了点异常:同时有
asm.jar、asm-attrs.jar、asm-2.2.3.jar 、 asm-commons-2.2.3.jar
asm-util-2.2.3.jar、 cglib-nodep-2.1_3.jar
在启动tomcat中不会出现异常信息。(我想asm-2.2.3jar可能在一定程度上作了改进。)

当在D:\tomcat\webapps\my\WEB-INF\lib 下加入 cglib-2.1.3.jar
会报上面的java.lang.NoSuchMethodError:
org.objectweb.asm.ClassVisitor.visit错误信息。
说明cglib-2.1.3.jar与其它包发生了冲突
删除cglib-2.1.3.jar问题解决!

分享到:
评论

相关推荐

    struts2-hibernate3-spring整合需要的全部jar包

    "struts2-hibernate3-spring整合需要的全部jar包"正是为了解决这个问题,它包含了所有必要的库文件,使得开发者可以直接引入而无需担心版本冲突。 以下是这个整合所需的一些关键jar包及其作用: 1. **Struts2框架*...

    flex+Spring+Hibernate整合配置详解

    右键点击项目,选择"MyEclipse" -> "Add Spring Capabilities",然后选择所需的Spring库,注意处理与Hibernate的jar包冲突问题,可能需要删除冲突的jar,例如"asm-2.2.3.jar"。推荐将所有依赖的jar包复制到`webRoot/...

    Struts+Spring+Hibernate整合注册登录_好资源0分送

    【Struts+Spring+Hibernate整合】是企业级Java Web应用中常见的技术栈,这三种框架的结合能够实现模型-视图-控制器(MVC)架构的高效开发,提供数据持久化、业务逻辑处理以及前端控制的完美融合。在这个特定的项目中...

    Struts+Spring+Hibernate整合详细

    标题与描述均提及了“Struts+Spring+Hibernate整合详细”,这意味着文章将深入探讨这三个框架如何协同工作,形成一个高效、稳定的企业级应用开发架构。Struts作为MVC框架,负责处理用户请求;Spring作为IOC容器,...

    Struts+Spring+Hibernate图文教程整合注册登录.doc

    编程过程中可能会遇到问题,比如在整合SSH后,发布到Tomcat时可能出现由于Spring和Hibernate中ASM库冲突导致的错误。解决方法是删除Spring AOP Libraries中的`asm-2.2.3.jar`,以消除冲突。 在应用上下文配置文件中...

    FLex整合hibernate spring

    8. **处理Flex与Spring的兼容性问题**:解决可能遇到的类版本冲突,例如ASM库的版本问题,更新或替换相应的jar包。 9. **编写DAO层**:定义基本的Data Access Object(DAO)接口和实现,例如IbaseDAO和BaseDAO,将...

    整合struts2.2.1+spring3.0.4+hibernate3.6选择jar包

    ### 整合Struts2.2.1+Spring3.0.4+...通过以上介绍,我们可以清晰地了解到在整合Struts2.2.1、Spring3.0.4和Hibernate3.6时所需的具体JAR包。正确选择和配置这些包对于构建稳定高效的Java Web应用程序至关重要。

    spring整合所需jar包

    在Spring框架的整合过程中,正确的jar包配置是至关重要的。以下将详细解释"spring整合所需jar包"的相关知识点。 首先,我们需要理解Spring框架的基本组成。Spring框架主要由以下几个模块构成: 1. **Core ...

    SSH框架整合时候包冲突

    例如,在上述描述中提及的`asm`库的冲突,`Spring AOP`需要`libasm-2.2.2.jar`、`asm-commons-2.2.2.jar`和`asm-util-2.2.2.jar`,而`Hibernate`则需要`libasm.jar`、`asm-attrs.jar`等。这些库的不同版本可能会导致...

    MyEclipse8.0 Struts2+Spring+Hibernate

    在IT行业中,构建高效、可维护的企业级应用是至关重要的,而Struts2、Spring和Hibernate这三大框架的整合是实现这一目标的常见途径。在本篇内容中,我们将详细探讨如何在MyEclipse8.0环境下整合Struts2.1、Spring3.0...

    MyEclipse整合Struts2+Spring+Hibernate详解

    ### MyEclipse整合Struts2+Spring+Hibernate详解 #### 一、概述 本文档将详细介绍如何使用MyEclipse集成开发环境(IDE)搭建并整合Struts2、Spring与Hibernate这三个流行的企业级Java开发框架。通过本教程的学习,...

    Struts2.1+Spring2+Hibernate3.3整合

    在整合过程中,可能遇到的冲突问题,如ASM库的版本冲突,需要检查并移除重复或不兼容的jar包。对于这种情况,只需保留一个版本的ASM库即可,通常是更新或更稳定的版本。 使用SSH2整合的优点在于,它提供了强大的...

    ssh整合出现的一些问题的解决

    在使用Spring AOP编程时,由于Spring和Hibernate之间的版本不兼容,可能会出现类库冲突的情况,如使用了不同版本的ASM库等。 **解决方案**: - **统一ASM版本**:确保Spring和Hibernate使用的ASM版本一致。例如,...

    jsf+spring+hibernate.pdf

    接着,配置Proxool.xml文件,这是Spring与Hibernate整合中用于管理数据库连接池的配置。在这里,我们指定了数据库的URL、驱动类、用户名和密码,以及连接池的一些参数,如最小连接数、最大连接数、连接生命周期和...

    struts2+hibernate+spring整合

    新建一个Web项目,并将Struts2、Hibernate和Spring的JAR包导入到项目的WEB-INF/lib目录下。注意,这里可能会有版本兼容问题,例如文中提到的asm-2.2.3.jar冲突,需要删除并重新部署。 2. **添加Spring支持** 使用...

    myeclipse7.0整合spring2.5+hibernate3.2+jsf(myfaces)

    注意避免jar包冲突,例如ojdbc14.jar和asm.jar。确保使用正确的数据库驱动版本,并删除可能导致冲突的旧版jar包。 **9. 修改web.xml配置** 为了使整合生效,需要更新web.xml文件。添加以下配置: - MyFaces的...

    strtus spring Hibernate 个人总结

    在实际项目中,可能会遇到框架间的依赖冲突,比如 Spring 和 Hibernate 都依赖于 ASM 库的不同版本。这时,我们需要检查项目的类路径,确保导入的库是兼容的。对于共同依赖的 jar 包,比如 `common-collections.jar`...

    Struts+Spring+Hibernate补充内容

    ### Struts+Spring+Hibernate框架整合相关知识点 #### 一、环境配置与依赖管理 **1.1 解决类冲突问题** 在使用Struts+Spring+Hibernate(简称SSH)进行项目开发时,可能会遇到类冲突的情况。特别是当涉及到Tomcat...

    ssh(struts2[1].2.1+_hibernate3.6+spring3.0.5)整合配置.doc

    SSH整合是Java Web开发中常见的技术栈,由Struts2、Hibernate和Spring三个框架组成,用于构建高效、灵活的企业级应用。在本文中,我们将详细介绍如何手动配置SSH(Struts2 2.2.1、Hibernate 3.6和Spring 3.0.5)的...

    在myeclipse中配置Spring\Hibernate\Struts集成

    在MyEclipse中配置Spring、Hibernate和Struts的集成是一项常见的任务,这个过程涉及到多个步骤,目的是将这三个流行的Java Web框架整合到一个项目中,以便实现MVC(模型-视图-控制器)架构。以下是详细的配置步骤和...

Global site tag (gtag.js) - Google Analytics