如何将远程jms客户端连接到tomcat中的嵌入式activemq代理?

问题描述:

我在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 。这可能吗?

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://*.com/questions/19706788/integration-of-restful-wvb-service-with-activemq/19751507?noredirect=1#19751507 – Kumar 2013-11-04 06:23:30