You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署HornetQ 2.4.0出现Connection refused连接异常求助

问题根因
  • RMI服务返回地址错误:JNDI底层基于RMI实现,你当前配置的RMI绑定地址为0.0.0.0仅代表容器内所有网卡均可监听,但RMI服务向客户端返回连接地址时,默认会返回容器内部的局域网IP或容器hostname,本地测试客户端拿到容器内部地址后无法路由,就会抛出连接拒绝错误。
  • Connector返回地址错误:hornetq-configuration.xml中配置的connector的host值为0.0.0.0,该值仅适用于服务端监听场景,客户端拿到该地址后会解析为本地地址,无法连接到Docker容器内的HornetQ服务。
解决方案

按以下步骤修改配置即可:

  1. 添加RMI公共地址JVM参数
    修改HornetQ启动脚本bin/run.sh,在Java启动参数中追加以下配置:
-Djava.rmi.server.hostname=127.0.0.1 -Djava.rmi.server.useLocalHostname=false

如果需要非本地的其他机器访问该服务,将127.0.0.1替换为Docker宿主机的公网/局域网IP即可。

  1. 修改Connector配置
    修改hornetq-configuration.xml中connectors节点下的所有host值,将原来的0.0.0.0替换为和上面JVM参数一致的地址(本地测试填127.0.0.1),acceptors节点的host值保持0.0.0.0不变即可:
<connectors>   
  <connector name="netty">
    <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
    <param key="host"  value="127.0.0.1"/>
    <param key="port"  value="5445"/>
  </connector>
  <connector name="netty-throughput">
    <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
    <param key="host"  value="127.0.0.1"/>
    <param key="port"  value="5455"/>
    <param key="batch-delay" value="50"/>
  </connector>
</connectors>
  1. 重新构建镜像启动
    修改配置后重新构建Docker镜像,使用原有启动命令启动容器即可:
docker build -t hornetq .
docker run -d -p 1098:1098 -p 1099:1099 -p 5445:5445 -p 5455:5455 hornetq

内容的提问来源于stack exchange,提问作者Oh hi Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:54:02