Servlet到远程ActiveMQ

时间:2010-10-10 04:28:45

标签: java activemq

我正在尝试使用JMS从servlet(在Apache Tomcat上运行)向在同一系统上的不同VM中运行的ActiveMQ发送消息。

我尝试过的事情:

  1. 在我的系统上运行ActiveMQ。
  2. 写了一个客户端(Java app)(Producer)来创建消息。
  3. 写了一个客户端(Java app)(消费者)来接收这些消息。
  4. 上述设置正常。

    现在,我有一个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消息,那就太棒了。

1 个答案:

答案 0 :(得分:0)

如果您通过JNDI查找连接,该连接指向tcp:// localhost:61616处的ActiveMQ实例,那么它不是远程代理。这是在端口61616上在本地计算机上运行的代理。如果要在另一台计算机上建立与远程代理的连接,则将localhost替换为IP地址。

布鲁斯