java - Servlet 到远程 ActiveMQ

标签 java activemq

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

我尝试过的事情:

  1. 在我的系统上运行 ActiveMQ。
  2. 编写了一个客户端(Java 应用程序)(Producer)来创建消息。
  3. 编写了一个客户端(Java 应用)(消费者)来接收这些消息。

上述设置工作正常。

现在,我有一个 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?这不是我想要的。我是妈妈的新人。

如果有人能告诉我如何从 servlet 向远程 Broker 发送 JMS 消息,那就太好了。

最佳答案

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

布鲁斯

关于java - Servlet 到远程 ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899035/

相关文章:

java - 使用 Jsoup 和适当的 cookie 登录 Facebook

javascript - Jersey 客户端接收 pojo us 字节

java - 将单行 HTML 文件分割为格式良好的 HTML 文件

java - ActiveMQ - 从 JMS 远程主机接收时无法识别对象

java - 带有 ActiveMQ 和 Spring 的 JMS 独立消费者

javascript - 如何使用 ActiveMQ ajax 向特定选择器发送消息

jms - 对 Apache Camel 和 ActiveMQ 感到困惑

java - JMS:activemq-version.properties 不可用

java - 从文本中提取链接

java - box2d 不同步