IncompatibleClassChangeError:类ClassMetadataReadingVisitor具有接口ClassVisitor作为超类


问题内容

我已经使用spring-mvc和mongodb作为数据库构建了一个Web应用程序。我使用maven3构建应用程序。

项目成功构建,但是当应用程序启动时,由于我的应用程序无法启动,我在日志中收到以下错误。这曾经在几个月前起作用。

引起原因:java.lang.IncompatibleClassChangeError:类org.springframework.core.type.classreading.ClassMetadataReadingVisitor具有接口org.springframework.asm.ClassVisitor作为超类

请让我知道是否有任何指针或你们是否需要更多信息。


问题答案:

当加载的类(即ClassMetadataReadingVisitor不遵守继承的抽象类或接口的约定)时,会发生此错误ClassVisitor

看起来在加载时,上述类的不同版本正在加载。

似乎您的应用程序中有新的spring-core jar和旧的spring-asm
jar。ClassMetadataReadingVisitor类正从加载 弹簧核心ClassVisitor弹簧ASM

请使用maven dependency:tree命令检查以查看依赖的jar。