我在 tomcat 中有一个嵌入式代理,我的 webapp 客户端使用 vm://localhost 可以正常连接。我希望另一个 jvm 中的一些远程客户端能够连接到嵌入式代理。如何设置嵌入式代理以侦听端口#?这适用于嵌入式客户端:
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://localhost 进行连接:
<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 启动时,当第一个客户端 webapp 部署时,代理启动并报告:
连接器 vm://localhost 已启动
我从来没有看到另一个连接器启动,比如 tcp://0.0.0.0:61616。这可能吗?