【问题标题】:ActiveMq in combination with TomcatActiveMq 与 Tomcat 结合
【发布时间】:2012-02-18 21:13:43
【问题描述】:

我想创建一个 ActiveMQ MessageListener 并使用 Spring 对其进行配置。 我将在 Tomcat 中托管监听器。不知道这个流程能不能做?如果是这样,怎么做? Client ---> Tomcat--->ActiveMQ---->Service(Java Application) ---->ActiveMQ--->Tomcat--->Client

提前致谢!

【问题讨论】:

  • 请看这个问题。我需要完全一样的。 stackoverflow.com/questions/19706788/… 感谢您的宝贵时间。
  • 我只使用 Jersey Rest 服务而不是 spring 框架。我必须将所有收入请求保留在队列中,然后转发到资源并获得结果。要点是正确处理所有http请求。谢谢

标签: java spring tomcat activemq


【解决方案1】:

是的,它可以做到。看看DefaultMessageListenerContainer。在 Web 应用程序中的 Spring 配置中,您可以拥有:

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" ref="brokerUrl" />
</bean>

<bean id="container" 
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  <property name="connectionFactory" ref="connectionFactory" />
  <property name="destination" ref="queue" />
  <property name="messageListener" ref="myMessageListener" />
  <property name="cacheLevelName" value="CACHE_CONSUMER" />
</bean>

其中 myMessageListener 是对您的 MessageListener 的引用。

关于你的流程是什么样子的问题,它会是:

  • JMS 客户端向 ActiveMQ 代理上的队列发送消息
  • ActiveMQ 代理接收消息并将其传递给侦听该队列的消费者之一,在本例中是我们在 Tomcat 中的 MessageListener

【讨论】:

  • 确定数据可以回复到正确的客户会话?给我更多信息
  • 如果您希望响应转到正确的客户端会话,您需要设置一个临时队列,并在您发送 JMS 消息时将其设置为客户端应用程序中的回复。跨度>
  • 客户端使用浏览器发送数据--> ActiveMQ->Service->ActiveMq->Client?
  • 浏览器如何与 ActiveMQ 对话?是通过 ActiveMQ REST、WebSockets 还是 Ajax 接口?或者您是否认为您会让 Web 浏览器与托管在 Tomcat 中的 servlet 对话,然后将消息传递给 ActiveMQ?
  • 您希望该 servlet 从浏览器接收 Web 请求,然后将其作为消息传递给 ActiveMQ?
【解决方案2】:

是的。我有一个服务可以解决这些数据,然后将结果发送到 ActiveMq,然后将结果显示给客户端

【讨论】:

猜你喜欢
  • 2015-12-04
  • 2015-04-04
  • 2012-01-21
  • 1970-01-01
  • 2012-06-11
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多