Spring JMS Baeldung示例代码无法连接ActiveMQ,请求排查指导
排查Spring JMS连接拒绝问题(tcp://localhost:61616)
1. 确认JMS Broker(默认是ActiveMQ)是否已启动
该示例依赖外部ActiveMQ服务,先检查本地是否运行了对应服务:
- Windows系统:
- 若已安装ActiveMQ,打开系统服务列表,确认
ActiveMQ服务状态为正在运行; - 未安装的话,下载ActiveMQ解压后,运行
bin/win64/activemq.bat启动服务; - 启动成功后访问
http://localhost:8161,能打开ActiveMQ管理控制台则说明服务正常。
- 若已安装ActiveMQ,打开系统服务列表,确认
2. 核对应用的Broker配置
检查应用的配置文件(如application.properties)或配置类:
- 确认JMS broker URL确实为
tcp://localhost:61616,无拼写错误或被修改; - 如果示例代码未配置嵌入式Broker,必须启动外部Broker才能正常连接。
3. 验证61616端口是否被占用
用命令排查端口占用情况:
- Windows执行:
netstat -ano | findstr :61616 - 如果输出结果里的PID对应的进程不是ActiveMQ,停止该占用进程,或者修改ActiveMQ的监听端口。
4. 检查ActiveMQ的配置文件
若已启动ActiveMQ但仍连接失败,查看conf/activemq.xml:
- 确认
transportConnectors节点下存在tcp://localhost:61616的配置,未被注释或修改,示例配置如下:
<transportConnectors> <transportConnector name="tcp" uri="tcp://localhost:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors>
5. 核对项目依赖
确认Maven/Gradle依赖中引入了正确的ActiveMQ包,以Maven为例:
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.16.5</version> <!-- 版本需与示例代码匹配 --> </dependency>
6. 测试端口连通性
用PowerShell直接测试端口是否可达:
Test-NetConnection localhost -Port 61616
若输出tcpTestSucceeded: True,说明端口正常;否则回到前面的步骤排查Broker启动或配置问题。
内容的提问来源于stack exchange,提问作者Holland Park
相关产品推荐
相关产品推荐

