连接到在Docker容器上运行的远程activemq实例

我有2个docker集装箱,一个运行一个spring的应用程序(在tomcat中),一个运行一个活动的mq实例。 当我尝试从我的spring的应用程序连接到它,我得到以下错误。 只有activeMQ在一个容器上运行,并且端口已经正确显示。 我validation了docker集装箱的IP地址(如下所示),这是正确的。

我不确定在这一点上可能会导致这个错误。 任何想法将不胜感激。

错误[activemq.broker.BrokerService]启动Apache ActiveMQ失败([mybroker,ID:489af431756c-60313-1409695404227-0:1],java.io.IOException:传输连接器无法在JMX中注册:无法绑定到服务器socket:tcp://172.17.0.2:61616?maximumConnections = 1000&wireFormat.maxFrameSize = 104857600由于:java.net.BindException:无法分配请求的地址)

您将Springconfiguration为在172.17.0.2上启动代理服务,该服务是远程计算机的IP。 相反,您应该configurationSpring以连接到该机器上的现有代理。 从ActiveMQ文档和使用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>