SpringBoot2.1.4整合RabbitMQ切换Stomp中继启动失败求助
解决Spring Boot 2.1.4 + Stomp Broker Relay启动失败的问题
从你提供的报错日志来看,核心问题是java.lang.NoClassDefFoundError: io/netty/util/concurrent/EventExecutor——这是因为Stomp Broker Relay模式需要依赖Netty组件来实现与外部消息代理(比如你的RabbitMQ)的TCP通信,而simple broker模式不需要这部分依赖,所以之前能正常运行。
快速修复步骤
1. 添加Netty依赖
根据你的构建工具,添加对应的Netty依赖:
Maven(pom.xml)
推荐使用Spring Boot的依赖管理来自动匹配兼容版本,避免版本冲突:
<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </dependency>
如果需要手动指定版本,Spring Boot 2.1.4对应的兼容版本是4.1.36.Final,你也可以直接使用这个版本号。
Gradle(build.gradle)
implementation 'io.netty:netty-all'
添加依赖后,重新构建并启动项目,这个类找不到的错误应该会消失。
2. 确认RabbitMQ的STOMP插件已启用
别忘了确保你的RabbitMQ已经开启了STOMP服务,执行以下命令启用插件:
rabbitmq-plugins enable rabbitmq_stomp
默认情况下,RabbitMQ的STOMP服务监听61613端口,确保这个端口没有被占用,并且你的Stomp Broker Relay配置指向了正确的地址和端口。
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

