SpringBoot项目整合RocketMQ启动异常
ClassNotFoundException: org.apache.rocketmq.client.consumer.DefaultLitePullConsumer
检查是否同事引入了以下两个依赖:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.0以上版本</version>
</dependency>
与
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>任意低于4.6.0的版本</version>
</dependency>
如果是,3种解决方式:
1、将rocketmq-client版本升至4.6.0或以上
2、依赖管理中保留,子项目的依赖中直接将rocketmq-client删除
3、或同时执行上面两步
原因:
rocketmq-spring-boot-starter中已引入了rocketmq-client,无需再次指定,如果此处版本低于4.6.0还会报错。因为在rocketmq-client-4.6.0后才支持DefaultLitePullConsumer,所以如果在外部引入了低于4.6.0版本的rocketmq-client,会覆盖rocketmq-spring-boot-starter本就有的版本,导致异常出现找不到类异常。
注意,即使是外部引入的rocketmq-client版本高于4.6.0,但又引入了rocketmq-spring-boot-starter,因为rocketmq-spring-boot-starter内部有rocketmq-client对应版本的依赖,可能还会导致版本冲突问题。