Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Servlet到远程ActiveMQ_Java_Activemq - Fatal编程技术网

Java Servlet到远程ActiveMQ

Java Servlet到远程ActiveMQ,java,activemq,Java,Activemq,我正在尝试使用JMS将一条消息从一个servlet(在ApacheTomcat上运行)发送到同一系统上不同VM上运行的ActiveMQ 我尝试过的事情: 在我的系统上运行ActiveMQ 编写了一个客户端(Java应用程序)(Producer)来创建消息 编写了一个客户端(Java应用程序)(消费者)来接收这些消息 上述设置工作正常 现在,我有了一个servlet,它通过JNDI查找资源。这是Tomcat的META-INF目录中context.xml的配置 <Context>

我正在尝试使用JMS将一条消息从一个servlet(在ApacheTomcat上运行)发送到同一系统上不同VM上运行的ActiveMQ

我尝试过的事情:

  • 在我的系统上运行ActiveMQ
  • 编写了一个客户端(Java应用程序)(Producer)来创建消息
  • 编写了一个客户端(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
    ?这不是我想要的。我是新来的妈妈


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

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


    布鲁斯

    你好,布鲁斯,谢谢你抽出时间。ActiveMQ在同一系统上运行,但作为不同的进程运行。我如何连接到它?有什么想法吗?它运行在不同的VM中。如果它运行在同一个系统上,但在不同的端口上,那么您只需要指向正确的端口号。