org.springframework.core.annotation.AnnotationUtils.isCandidateClass(Ljava/lang/Class;Ljava/lang/Cla
发布时间
阅读量:
阅读量
在编写一个基于ActiveMQ的小例子时,出现了错误。Bean initialization失败,并且nested exception为java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isCandidateClass(Ljava/lang/Class;Ljava/lang/Class;)Z
分析问题:
jar包冲突啦
IDEA按住shift+shift

看吧,这两个冲突啦。
涉及activmq-all-5.15.6版本和spring-core-5.2.7 RELEASE版本;对AnnotationUtils是否存在冲突问题进行了查看


解决办法:
就不要用activmq-all-5.15.6.jar包
删啦pom文件里的这个依赖
<!--<dependency>-->
<!--<groupId>org.apache.activemq</groupId>-->
<!--<artifactId>activemq-all</artifactId>-->
<!--<version>5.15.6</version>-->
<!--</dependency>-->
删除了随后依次显示的几个错误信息,并发现这些错误都是由于缺少必要的Java消息系统依赖项所导致的。
import org.springframework.stereotype.Service;
import org.apache.activemq.transport.stomp.StompConnection;
java.lang.NoClassDefFoundError: javax/jms/JMSContext
<!--activemq-all的替换包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-stomp</artifactId>
<version>5.15.13</version>
</dependency>
然后就不报错成功啦~真开心鸭!

本质上来说,核心思路是移除了activmq-all-5.15.6.jar这个依赖项。当代码提示缺少某个组件时,则直接替换成可用版本。这样就不会出现依赖冲突的问题。
又是努力学习的一天,好充实好幸福~~~
全部评论 (0)
还没有任何评论哟~
