私は webapp クライアントが vm://localhost を使用して正常に接続している tomcat に組み込みのブローカーを持っています。別の 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 のように、別のコネクタが開始されたことはありません。これは可能ですか?