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

Sha*_*dav 41 java spring-mvc maven-3

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

项目构建成功,但是当应用程序启动时,我在日志中收到以下错误,因为我的应用程序无法启动.这曾经在几个月前开始工作.

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

如果有任何指示或者你们需要更多信息,请告诉我.

Bhu*_*ale 76

当加载的类即ClassMetadataReadingVisitor不遵守继承的抽象类或接口的合同时,会发生此错误ClassVisitor.

看起来在加载时,上述类的不同版本将在您的情况下加载.

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

请检查使用maven dependency:tree命令查看从属jar.


Ale*_*tet 41

在spring version> 3.2.0中,您不再需要明确包含,spring-asm因为它已经包含在内spring-core.

spring-asm从构建定义中删除并确保spring-core存在.

http://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/migration-3.2.html#migration-3.2-inline-asm

  • 它帮助我删除了`cglib`,它取决于`asm`. (2认同)

Him*_*waj 7

例如spring-asm,当使用无法填充的jar版本时,通常会显示此错误spring-core.看看forum.springsource.org/showthread.php?133341