signed

QiShunwang

“诚信为本、客户至上”

spring org.springframework.asm.ClassVisitor 相关jar包冲突

2021/4/26 18:56:19   来源:

 

java服务启动报错:

nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.Si
mpleAnnotationMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
        at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(Cl
assPathScanningCandidateComponentProvider.java:237)
        at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.j
ava:204)
        at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionPar
ser.java:84)
        at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDel
egate.java:1335)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDel
egate.java:1325)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDef
initionDocumentReader.java:135)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBean
DefinitionDocumentReader.java:93)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader

 

 

报错信息中可以仔细看如下:

class org.springframework.core.type.classreading.SimpleAnnotationMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

可以重点看 ClassVisitor 这个信息,应该是jar包冲突的原因。因为看错误信息,ClassVisitor应该是有个同包同名的一个接口和一个类。

定位到jar冲突那就排查哪些jar冲突了。查看服务所有的jar包。

发现有spring-asm-3.0.5的jar包。打开这个jar看到ClassVisitor是个接口

 

jar包太多,无法逐一排查,看报错提示包名应该也是org.springframework.asm 。应该也是spring相关的jar有冲突了。继续查看相关jar。发现有2个高版本的spring相关jar。将他们down下来查看一下。

在5.2.11包中同包同名的ClassVisitor是一个类