asm jar包冲突的问题和解决方法
在用Spring+Hibernate做项目时候遇到
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
网上查得答案
环境:Spring2.0 Hibernate3.1.x/Hibernate3.2
在使用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
分享到:
相关推荐
标题中的“asm.jar包冲突”指的是在开发或运行Java应用程序时遇到的问题,ASM是一个Java字节码操控和分析框架,常用于动态代理、字节码增强等场景。当多个库或者项目引用了不同版本的asm.jar,就可能出现版本冲突,...
在实际项目中,"cglib-2.2.jar"是Cglib的一个特定版本,包含了Cglib的类和接口,而"asm-3.3.1.jar"则是ASM的一个版本,提供了字节码操作的基础工具。当在项目中使用Cglib时,通常需要同时引入这两个库。
java操作Excel环境easyExcel-2.0.5最新版本环境(自动适配属性),解决asm及cglib冲突等。亲测可用。asm.jar cglib-2.2.jar cglib-3.1.jar cglib-nodep-2.2.jar commons-collections4-4.1.jar easyexcel-2.0.5.jar ...
本套"匹配的cglib和asm包"正是为了解决这个问题。它包含了已经经过验证的CGILib和ASM的兼容版本,确保在使用CGILib时不会出现由于版本不匹配导致的错误。这为开发者提供了一个方便的解决方案,避免了在寻找和测试...
在本案例中,"asm.jar"和"cglib.jar"是用于解决CGLIB在运行时生成代理类所需的关键库。"asm.jar"提供了对字节码的低级别操作,而"cglib.jar"则基于ASM提供了一套更高级别的API,使得开发者可以更容易地生成和操作...
用于idea中的aop编程的包,解决一些问题,减少错误的冲突
org.springframework.beans org.springframework.beans.annotation org.springframework.beans.factory org.springframework.beans.factory.access org.springframework.beans.factory.access.el ...
5. **验证解决方案**:最后一步是在本地环境中测试项目是否能够正常启动和运行,以确认包冲突问题是否已经得到解决。 #### 总结 在处理SSH框架中的包冲突问题时,最重要的是理解项目依赖之间的关系以及如何通过...
SSH集成时,有包的冲突,先删除cglib-2.1.jar和所有的asm开头的jar包,然后导入了asm-all-3.0.jar;
- `asm.jar` 和 `cglib-nodep.jar`:用于动态代理和字节码操作,常用于 AOP 实现。 6. **JSON 处理** - `jackson-databind.jar`、`jackson-annotations.jar` 和 `jackson-core.jar`:Jackson JSON 库,用于 JSON ...
"struts2-hibernate3-spring整合需要的全部jar包"正是为了解决这个问题,它包含了所有必要的库文件,使得开发者可以直接引入而无需担心版本冲突。 以下是这个整合所需的一些关键jar包及其作用: 1. **Struts2框架*...
同时,由于ASM库对字节码的操作较为底层,因此在使用过程中需要注意兼容性和版本匹配问题,避免与已有的其他字节码库冲突。 总结来说,ASM Tree库3.3.1版本为Java开发者提供了一种高效、直观的方式来处理字节码,...
2. **字节码生成**:除了解析,ASM还支持生成新的字节码,允许开发者动态创建或修改类和方法。这对于实现Java代理、AOP(面向切面编程)或者动态语言的JVM实现是非常关键的。 3. **高性能**:ASM设计时注重性能,其...
标题中的“打包hibernate 用到的一些jar包”指的是在使用Hibernate框架进行Java应用程序开发时,需要将一系列依赖的JAR(Java Archive)文件集合在一起,以便于项目的构建和运行。Hibernate是一个强大的对象关系映射...
在本案例中,标题和描述提到的"Spring源码导入Eclipse缺失Jar包spring-asm-repack-5.0.4+spring-cglib-repack-3.1",意味着在进行Spring源码研究时,Eclipse缺少了这两个关键的库文件。 首先,我们需要了解ASM...
Java开发过程中,jar(Java Archive)包扮演着至关重要的角色...在使用过程中,务必注意版本兼容性,避免引入的jar包版本冲突导致的问题。此外,利用构建工具(如Maven或Gradle)进行自动化管理,能大大提高开发效率。
- **asm.jar** 和 **asm-attrs.jar**:ASM字节码库,与CGLIB配合,处理Java字节码生成。 - **ehcache.jar**:EHCache缓存库,用于存储和管理缓存数据,提高应用性能。 - **antlr.jar**:语言转换工具,帮助...
另外,如果使用了Hibernate的高级特性,如CGLIB或ASM代理,还需要对应的jar包,如`cglib-nodep.jar`和`asm.jar`。这些库主要用于实体的动态代理,实现懒加载和事务控制等功能。 在整合这些jar包时,确保将它们添加...