异常:****has interface org.springframework.asm.ClassVisitor as super class

严重: Context initialization failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [E:\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\spring_mvc\WEB-INF\classes\com\cglin\manage\common\BaseDao.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class


导入的jar:

异常:****has interface org.springframework.asm.ClassVisitor as super class_第1张图片


我们在开发的时候,版本尽量做到一致,因为这样可以避免很多不必要的异常,1个版本的差别可能定义完全不同


spring需要这个玩意,我们已经导入了,但是为什么抛异常,这个错误是为什么呢?

我们编译先3.1和3.2的spring-score jar:

3.1的如下:

异常:****has interface org.springframework.asm.ClassVisitor as super class_第2张图片


3.2的如下:



经过比较,很显然,3.2之后spring-score直接引入了asm,所以不需要再导入spring-asm-3.1.*.jar。

而且经过比较我们会发现,两个版本对ClassVisitor的定义是不同的,一个是类,一个是接口。

spring-asm-3.1.*.jar

异常:****has interface org.springframework.asm.ClassVisitor as super class_第3张图片

spring-core-3.2.8.jar

异常:****has interface org.springframework.asm.ClassVisitor as super class_第4张图片

所以,3.2.8 的 版本 不需要到导入asm这个jar,移除即可

你可能感兴趣的:(springMVC,ClassVisitor)