Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不兼容ClassChangeError:类ClassMetadataReadingVisitor将接口ClassVisitor作为超类_Java_Spring Mvc_Maven 3 - Fatal编程技术网

Java 不兼容ClassChangeError:类ClassMetadataReadingVisitor将接口ClassVisitor作为超类

Java 不兼容ClassChangeError:类ClassMetadataReadingVisitor将接口ClassVisitor作为超类,java,spring-mvc,maven-3,Java,Spring Mvc,Maven 3,我使用SpringMVC和mongodb作为数据库构建了一个web应用程序。我使用maven3构建应用程序 项目成功构建,但当应用程序启动时,我在日志中收到以下错误,导致我的应用程序无法启动。这在几个月前就起作用了 原因:java.lang.CompatibleClassChangeError:类 org.springframework.core.type.classreading.ClassMetadataReadingVisitor 将接口org.springframework.asm.Cl

我使用SpringMVC和mongodb作为数据库构建了一个web应用程序。我使用maven3构建应用程序

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

原因:java.lang.CompatibleClassChangeError:类 org.springframework.core.type.classreading.ClassMetadataReadingVisitor 将接口org.springframework.asm.ClassVisitor作为超级类


请告诉我是否有任何指针或你们是否需要更多信息。

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

看起来在加载时,您的案例中正在加载上述类的不同版本

您的应用程序中似乎有新的spring核心jar和旧的spring asm jar
ClassMetadataReadingVisitor
类从SpringCore
ClassVisitor
SpringASM加载


请使用maven
dependency:tree
命令查看相关JAR。

此错误通常在使用不可计算的JAR版本时出现,例如
spring asm
spring core
。看看spring版本>3.2.0中的,您不再需要显式地包含
spring asm
,因为它已经包含在
spring core

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


我也遇到了同样的问题,通过从
pom.xml


它已经包含在SpringCore的依赖项中。

对于那些升级到3.1.x以上版本的用户,它将进行更新。。。正如前面所说的那样,不再有单独的
spring asm
,因此最好将
spring asm
全部排除在外,一旦您使用spring 3.2.x版

是的,我看到了不同版本的spring JAR。mongodb依赖项正在使用最新的JAR。我应该如何解决这个问题?因为mongo依赖项需要最新的spring,所以您也会增加spring依赖项。但是你说它过去一直在工作,这意味着mongo jars可能没有为它的spring依赖定义任何版本,所以自动拉取最新版本。检查mongo罐子的pom。谢谢你的提醒。是的,它的mongo JAR没有定义版本依赖关系。目前我使用的是最新的spring版本。它帮助我删除了
cglib
,这取决于
asm
。请参考下面链接中的答案