在用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
分享到:
相关推荐
在实践中,当你尝试使用CGLIB时,可能会遇到jar包版本不匹配的问题。这是因为不同的CGLIB版本可能依赖于不同版本的ASM库,如果不一致,会导致运行时错误。描述中提到的错误通常表现为类找不到或者类版本冲突的异常,...
用于idea中的aop编程的包,解决一些问题,减少错误的冲突
org.springframework.beans org.springframework.beans.annotation org.springframework.beans.factory org.springframework.beans.factory.access org.springframework.beans.factory.access.el ...
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 ...
SSH集成时,有包的冲突,先删除cglib-2.1.jar和所有的asm开头的jar包,然后导入了asm-all-3.0.jar;
`nodep`表示"no dependencies",意味着你可以直接使用这个jar包而不需要担心与其他库的冲突。然而,这意味着你需要在你的项目中单独引入CGLIB所依赖的库,比如ASM,以便CGLIB能够正常工作。 在实际开发中,CGLIB...
asm-3.2.jar bcprov-ext-jdk15-145.jar bcprov-jdk15-145.jar commons-compress-1.0.jar fontbox-0.8.0-incubating.jar jempbox-1.0.0.jar log4j-1.2.13.jar metadata-extractor-2.3.1.jar pdfbox-0.8.0-incubating-...
在ASM Tree 3.3.1的jar包中,除了核心库`asm-tree-3.3.1.jar`外,还有一个`asm-2.2.1.jar.license.txt`文件,这通常包含的是ASM基础库的许可证信息。这意味着在使用ASM Tree库时,可能需要同时引用ASM基础库,且必须...
Java开发过程中,jar(Java Archive)包扮演着至关重要的角色...在使用过程中,务必注意版本兼容性,避免引入的jar包版本冲突导致的问题。此外,利用构建工具(如Maven或Gradle)进行自动化管理,能大大提高开发效率。
在实际项目中,"cglib-2.2.jar"是Cglib的一个特定版本,包含了Cglib的类和接口,而"asm-3.3.1.jar"则是ASM的一个版本,提供了字节码操作的基础工具。当在项目中使用Cglib时,通常需要同时引入这两个库。
描述中提到的"asm, 2.2, jar.zip包下载, 依赖包"进一步解释了这个文件的关键信息。"asm"是ASM库的缩写,"2.2"是这个库的版本号,表明这是ASM的一个较早版本。"jar.zip包下载"提示我们这是一个Java Archive (JAR) ...
`asm-attrs-1.4.1.jar.zip`的使用意味着项目可能依赖ASM库的这个特定版本,因此在构建系统中(如Maven或Gradle)需正确配置依赖,避免与其他版本冲突。同时,理解`asm-2.2.1.jar.license.txt`中的许可条款,确保项目...
在Java开发环境中,jar.zip包下载通常是为了方便分发和管理依赖。这里的asm-2.2.1.jar.license.txt很可能是ASM库的许可证文件,它详细说明了ASM库的使用条款和限制。遵循这些条款是使用开源软件的必要条件,以确保...
在项目中引入ASM时,要管理好这些依赖,避免版本冲突。 - **学习曲线**:ASM提供了底层的字节码操作能力,但这也意味着使用起来有一定的学习成本,需要理解Java字节码的概念和结构。 - **错误处理**:由于ASM允许...
- `asm.jar` 和 `cglib-nodep.jar`:用于动态代理和字节码操作,常用于 AOP 实现。 6. **JSON 处理** - `jackson-databind.jar`、`jackson-annotations.jar` 和 `jackson-core.jar`:Jackson JSON 库,用于 JSON ...
在实际开发中,ASM-Util 2.2.3.jar可能作为项目的一个依赖包被引入,通过Maven或Gradle等构建工具管理。开发者在使用时,需要明确ASM-Util的功能边界,避免与ASM库的其他组件发生冲突。同时,理解ASM-Util的API文档...
在某些情况下,项目可能已经包含了ASM的一个版本,如果CGLIB库再引入另一个版本的ASM,可能会导致版本冲突或者运行时错误。使用`cglib-nodep-2.2.jar`可以避免这种问题,因为它内部集成了所需的ASM功能,不需要额外...