你在加的时候按这个顺序来加Struts--Spring--Hibernate,有重复包的时候不要替换就没问题了
方法一:
在使用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.3.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
方法二:
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如果lib:
asm.jarasm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突。
使用其中之一或两者都使用,可能会出现如下错误: java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitorjava.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitorjava.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
下面是解决方法手工编辑你的.classpath文件,比如我这个(只有部分内容)
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>
将最后2行hibernate和mysql驱动,手工复制到springframework的lib前面。
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
现在你再试试启动,应该不会报错了。
我这里用了myeclipse的jar包。如果你是自定义用户库jar包,那么只要保证spring的jar包在hibernate之后加载,项目在部署的时候spring的jar包就会覆盖掉hibernate的jar包。
分享到:
相关推荐
解决SSH集成jar包冲突的问题,首先需要对每个框架的jar包进行精简,只保留必需的部分。通常,这一步可以通过Maven或Gradle等构建工具来完成,通过设置正确的依赖管理和排除规则,确保每个jar包的版本和依赖关系得到...
在描述中提到的"SSH不冲突的jar包文件"可能是指包含了这三个组件兼容版本的jar集合,确保在同一个项目中使用时不会出现版本冲突问题。通常,选择兼容的SSH jar包是项目初始化阶段的关键步骤,因为不同版本的SSH组件...
这里提到的"SSH不冲突的jar包"是指经过精心配置和筛选的库文件集合,确保它们在同一个项目中使用时不会产生版本兼容性问题。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它加强了...
1. 添加SSH相关jar包到项目的类路径,确保所有依赖都已到位。 2. 配置Spring,包括bean定义、事务管理、数据源等。 3. 配置Struts,定义Action类、ActionForm、结果转发等。 4. 配置Hibernate,包括数据库连接、实体...
因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,, struts1.3 和2.1都带有antlr-2.7.2.jar ,,,下面我要把它们都清除了,由于myeclipse 添加的struts性能...
在使用SSH整合jar包时,开发者需要确保所有的jar文件没有重复且相互兼容,因为不同版本的jar可能会引发冲突。此外,还需要正确配置各框架的配置文件,例如Spring的beans.xml、Struts的struts-config.xml以及...
通过上述措施,可以有效地管理和解决SSH框架整合时可能出现的jar包冲突问题,提高开发效率和应用稳定性。"ssh不冲突jar包"提供了一种便捷的解决方案,减少了开发者在解决依赖冲突上花费的时间,从而更专注于业务逻辑...
描述中的"无冲突jar包 绝无冲突"指出,这个新的SSHjar包经过了精心的调整和测试,确保所有库文件之间不存在版本冲突或功能冲突。在实际开发中,不同库间的版本不匹配往往会导致运行时错误,因此一个无冲突的jar包...
由于SSH2涉及到多个组件,如加密算法、会话管理、公钥认证等,因此相关的jar包数量较多,且不同版本之间可能存在兼容性问题。开发者在实际项目中寻找和管理这些jar包时,可能会遇到版本对应、依赖冲突等难题。这个...
本资源提供的"完整项目SSH jar包集合"是一个包含所有必需jar文件的集合,确保在使用SSH框架进行项目开发时,没有jar包冲突的问题。 1. **Spring框架**: Spring是Java应用程序中的一个核心框架,它提供了依赖注入...
- 需要注意的是,不同版本的SSH框架可能存在兼容性问题,选择对应版本的jar包可以确保稳定运行。 - 更新jar包时,要检查新版本的API变更,可能需要更新代码以适应新的接口。 7. **性能优化**: - 通过合理的配置...
这个"sshJar包(终极版)"可能包含了这些框架的集合,方便开发者直接导入项目,而无需单独下载和管理各个框架的库文件。 标题中的"sshJar包(终极版)"暗示这可能是一个包含最新或最稳定版本的SSH框架的集合。这种...
SSHJAR包part01是针对MyEclipse开发环境中的JAR包冲突问题提供的一种解决方案。在Java开发中,特别是使用集成开发环境(IDE)如MyEclipse时,由于项目中可能引入了多个库,这些库之间可能存在依赖关系,有时会因为...
### SSH包冲突问题解决_sqlserver #### 背景与问题描述 在开发基于SSH(Struts、Spring、Hibernate)框架的应用程序时,经常会遇到由于不同框架之间或框架内部依赖库版本不一致导致的包冲突问题。这类问题往往表现...
这些jar包的版本兼容性至关重要,因为不同版本的SSH组件之间可能存在兼容性问题,可能导致应用无法正常运行或出现异常。 描述中提到的"解决不同的版本问题",意味着在开发过程中,开发者经常遇到由于jar包版本不...
SSH(Struts2、Hibernate、Spring)是...同时,还需要确保项目的其他依赖库与这些jar包兼容,以避免版本冲突问题。在实际开发过程中,还需要阅读框架的官方文档,了解其详细用法和最佳实践,以提升开发效率和代码质量。
在实际项目中,通常会使用构建工具如Maven或Gradle来管理这些依赖,避免jar包冲突。然而,如果你手动管理这些jar包,确保所有的依赖都齐全且版本匹配是非常重要的。将这些jar包放入项目的`lib`目录下,并正确配置`...
这个"SSH无冲突jar包"很可能是一个包含了这三大框架兼容版本的集合,旨在简化开发过程中可能出现的库版本冲突问题。 **Struts 2.0** 是一个基于MVC设计模式的Web应用框架,它继承了Struts 1的优点并增强了Action和...
SSH整合是指将Spring、Struts2和Hibernate这三...在项目中,确保所有必需的jar包都被正确引入,避免版本冲突,是成功整合SSH的关键。通过合理组织和管理这些jar包,开发者可以构建出高效且易于维护的Java Web应用程序。
在`pom.xml`中定义SSH框架及其依赖的版本,Maven会自动下载并管理这些jar包,避免了手动添加和版本冲突的问题。同时,还需要在Web应用的`web.xml`文件中配置Struts2和Spring的监听器、过滤器等,以及在Hibernate的...