2014-09-02 93 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> 
相關問題