2014-09-02 182 views
0

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

我不确定此时可能导致此错误的原因。任何想法将不胜感激。

ERROR [activemq.broker.BrokerService]无法启动Apache ActiveMQ的([MYBROKER,ID:489af431756c-60313-1409695404227-0:1],java.io.IOException的:传输连接器无法注册在JMX:无法绑定到服务器套接字:TCP://172.17.0.2:61616 maximumConnections = 1000 & wireFormat.maxFrameSize = 104857600由于:java.net.BindException:不能分配请求的地址)

+0

请给我们两个不同的名字两台机器在这个问题上(例如'app'和'mq')的情况下。哪台机器出现此错误? – Raffaele 2014-09-02 22:21:15

+0

其中一个名为'tomcat',另一个名为'activemq' – 2014-09-02 22:25:13

+0

此消息来自哪里? – Raffaele 2014-09-02 22:25:36

回答

1

您配置了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> 
相关问题