gpt4 book ai didi

java - 连接到在 docker 容器上运行的远程 activemq 实例

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:21 25 4
gpt4 key购买 nike

我有 2 个 docker 容器,一个运行 spring 应用程序(在 tomcat 中),另一个运行 Activity 的 mq 实例。当我尝试从我的 spring 应用程序连接到它时,出现以下错误。只有 activeMQ 在一个容器上运行,并且端口已正确公开。我验证了 docker 容器的 IP 地址(如下所示),这是正确的。

目前我不确定是什么原因导致此错误。任何想法将不胜感激。

ERROR [activemq.broker.BrokerService] Failed to start Apache ActiveMQ ([mybroker, ID:489af431756c-60313-1409695404227-0:1], java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://172.17.0.2:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600 due to: java.net.BindException: Cannot assign requested address)

最佳答案

您将 Spring 配置为在 172.17.0.2(远程计算机的 IP)上启动代理服务。相反,您应该配置 Spring 以连接到该计算机上的现有代理。来自 ActiveMQ documentation并使用 Spring 工具 JMSTemplate:

<!-- a pooling based JMS provider -->
<bean id="jmsFactory"
class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://activemq-host.local:61616</value>
</property>
</bean>
</property>
</bean>

<!-- Spring JMS Template -->
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="jmsFactory"/>
</property>
</bean>

关于java - 连接到在 docker 容器上运行的远程 activemq 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com