rocketMq 启动异常:NoClassDefFoundError: org/apache/rocketmq/client/consumer/DefaultLitePullConsumer

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对应版本的依赖,可能还会导致版本冲突问题。

猜你喜欢

转载自blog.csdn.net/JemeryShen/article/details/126725411