如何将远程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"/>
我在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
@Satish您好,请您提供一些线索。 http://stackoverflow.com/questions/19706788/integration-of-restful-wvb-service-with-activemq/19751507?noredirect=1#19751507 – Kumar 2013-11-04 06:23:30