2012-04-25 61 views
3

我在tomcat中有一個嵌入代理,我的webapp客戶端使用vm:// localhost連接到很好。我希望另一個jvm中的一些遠程客戶端能夠連接到嵌入式代理。我如何設置嵌入式代理來偵聽端口#?這適用於嵌入式客戶端:如何將遠程jms客戶端連接到tomcat中的嵌入式activemq代理?

server.xml的片段:

<Resource auth="Container" 
name="jms/ConnectionFactory" 
type="org.apache.activemq.ActiveMQConnectionFactory" 
description="JMS Connection Factory" 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
brokerURL="vm://localhost" 
brokerName="MyActiveMQBroker" 
useEmbeddedBroker="true"/> 

這是不工作的遠程客戶端,但我的嵌入式客戶仍在使用VM連接://本地主機:

<Resource auth="Container" 
name="jms/ConnectionFactory" 
type="org.apache.activemq.ActiveMQConnectionFactory" 
description="JMS Connection Factory" 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
brokerURL="vm:(broker:(tcp://localhost:61616))" 
brokerName="MyActiveMQBroker" 
useEmbeddedBroker="true"/> 

我的遠程客戶端出現此錯誤:

無法連接到代理URL:tcp:// localhost:61616。原因:java.net.ConnectException:連接被拒絕

我也一直在嘗試這樣的:

brokerURL="vm://localbroker?brokerConfig=xbean:file:C:/temp/activemq.xml" 

,並在activemq.xml中,設置這樣的:

<transportConnectors> 
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> 
</transportConnectors> 

<networkConnectors> 
<networkConnector uri="static:(tcp://0.0.0.0:61616)"/> 
</networkConnectors> 

我不相信XML文件正在閱讀,因爲編輯它時,我的症狀永遠不會改變。在Tomcat啓動時,當第一個客戶端Web應用程序部署,經紀人開始和報告:

連接器VM://本地主機開始

我從來沒有看到其他連接器開始,如TCP://0.0.0.0:61616 。這可能嗎?

回答

1

vm://localhost將不會打開遠程代理連接的tcp端口。 vm協議可以在JVM中使用。

配置在本地的Tomcat(例如考慮本地服務器主機名稱爲 「tomcathostone」)在遙控器上的tomcat

<Resource auth="Container" 
name="jms/ConnectionFactory" 
type="org.apache.activemq.ActiveMQConnectionFactory" 
description="JMS Connection Factory" 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
brokerURL="broker:(tcp://0.0.0.0:61616)" 
brokerName="MyActiveMQBroker" 
useEmbeddedBroker="true"/> 

配置(例如,考慮遠程服務器主機名稱爲 「tomcathosttwo」)

<Resource auth="Container" 
name="jms/ConnectionFactory" 
type="org.apache.activemq.ActiveMQConnectionFactory" 
description="JMS Connection Factory" 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
brokerURL="broker:(tcp://tomcathosttwo:61616,network:static:tcp://tomcathostone:61616)" 
brokerName="MyActiveMQBroker" 
useEmbeddedBroker="true"/> 
+0

我在Tomcat 7 server.xml中使用了brokerURL =「broker:(tcp://0.0.0.0:61616)」的配置,但遇到了以下錯誤:嵌套異常是javax.jms.JMSException:無法創建運輸。原因:java.io.IOException:無法識別傳輸方案:[broker]。你知道這個問題的原因是什麼? – florins 2013-10-18 12:50:07

+0

@Satish您好,請您提供一些線索。 http://stackoverflow.com/questions/19706788/integration-of-restful-wvb-service-with-activemq/19751507?noredirect=1#19751507 – Kumar 2013-11-04 06:23:30

相關問題