我正在尝试使用JMS从servlet(在Apache Tomcat上运行)向在同一系统上的不同VM中运行的ActiveMQ发送消息。
我尝试过的事情:
上述设置正常。
现在,我有一个servlet,它通过JNDI查找资源。这是Tomcat的META-INF目录中context.xml的配置。
<Context>
<Resource
name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL=" tcp://localhost:61616"
/>
</Context>
我可以从sevlet中查找这些资源。邮件已发送。但我认为它没有达到ActiveMQ。有什么想法吗?
我觉得它是将它发送到容器内运行的其他目的地vm://localhost
?这不是我想要的。我是MOM的新手。
如果有人可以告诉我如何从servlet向远程Broker发送JMS消息,那就太棒了。
答案 0 :(得分:0)
如果您通过JNDI查找连接,该连接指向tcp:// localhost:61616处的ActiveMQ实例,那么它不是远程代理。这是在端口61616上在本地计算机上运行的代理。如果要在另一台计算机上建立与远程代理的连接,则将localhost替换为IP地址。
布鲁斯