【问题标题】:Integrating ActiveMQ with Tomcat将 ActiveMQ 与 Tomcat 集成
【发布时间】:2015-12-04 15:01:03
【问题描述】:

我正在寻找有关将 activemq 与 tomcat 集成的提示。

我的架构如下所示,每个应用都在不同的 jvm/机器上运行,

生产者应用 -> tomcat (activemq) -> 消费者应用

消费者和生产者应该连接到远程机器上的activemq。我还想启用 Web 控制台。

【问题讨论】:

  • 最简单的方法:1) 下载 Apache TomEE(预集成 ActiveMQ 的 Tomcat),2) 开始编写应用程序 :)
  • @paulsm4 - 我不想使用 TomEE。
  • 问:如果没有,为什么不呢?问:在同一个链接中,您是否看到手动设置 ActiveMQ 的信息?它回答了你的问题吗?

标签: java tomcat activemq


【解决方案1】:

首先你应该在远程机器上下载并安装 ActiveMQ,web 控制台将默认启用。

其次,您应该配置每个 tomcat 节点。

将activemq-all.jar(5.11及更高版本,您可以在这里下载http://mvnrepository.com/artifact/org.apache.activemq/activemq-all)放入$TOMCAT_HOME/lib文件夹。 ActiveMQ 为其所有管理对象准备好 JNDI 资源工厂:ConnectionFactory 和目的地。 您必须将其作为资源的参数工厂提供:

添加到 $TOMCAT_HOME/CONF/context.xml

<Resource name="jms/activemq-factory" 
        auth="Container" 
        type="org.apache.activemq.ActiveMQConnectionFactory" 
        description="JMS Connection Factory" 
        factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
        brokerURL="tcp://${broker.host}:${broker.port}" 
        brokerName="LocalActiveMQBroker" 
        useEmbeddedBroker="false"/>

<Resource name="jms/activemq-topic" 
            auth="Container" 
            type="org.apache.activemq.command.ActiveMQTopic" 
            factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
            physicalName="activemq-topic"/> 

将 broker.host 和 broker.port 替换为真正的 ActiveMQ 参数。

现在您可以为 activemq-topic 编写消费者。 就是这样。

【讨论】:

  • 我在这里尝试过您的解决方案,但是当我在 linux 服务器上检查 netstat 时,我没有看到代理端口被监听。我正在使用 Tomcat 8 和 Java 8,但我不确定这是否是问题所在?
猜你喜欢
  • 2015-02-03
  • 2014-03-07
  • 2016-05-08
  • 2014-10-03
  • 2013-04-13
  • 1970-01-01
  • 2011-02-23
  • 2012-04-03
  • 2013-09-17
相关资源
最近更新 更多