java - 不兼容的ClassChangeError : class ClassMetadataReadingVisitor has interface ClassVisitor as super class

标签 java spring-mvc maven-3

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

项目构建成功,但是当应用程序启动时,我在日志中收到以下错误,因为我的应用程序没有启动。这曾经在几个月前有效。

Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

如果有任何指示或需要更多信息,请告诉我。

最佳答案

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

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

您的应用程序中似乎有新的 spring-core jar 和旧的 spring-asm jar。 ClassMetadataReadingVisitor 类正在从 spring-core 加载,ClassVisitorspring-asm 加载。

请使用 maven dependency:tree 命令查看依赖的 jars。

关于java - 不兼容的ClassChangeError : class ClassMetadataReadingVisitor has interface ClassVisitor as super class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209623/

相关文章:

eclipse - Eclipse 中的 Maven 配置文件和 Tomcat

java - this 和 Activity.this 有什么区别

java - 谁在 spring web 应用程序中创建 bean?

java - 将序列化对象从客户端传递到 Spring Controller 并取回序列化对象响应的最简单方法?

java - 对每个请求进行用户身份验证 - Spring MVC

java - 在 Spring MVC + Hibernate 应用程序中的某个类中获取方言

java - 在多模块 Maven 项目中使用配置文件

java - JSch ChannelSftp.ls 抛出空指针

java - 线程中出现异常 "main"java.lang.UnsatisfiedLinkError : no libz3java in java. library.path

maven - 创建新阶段