2012-01-25 46 views
0

我想創建一個ActiveMQ MessageListener並使用Spring進行配置。 我將在Tomcat中託管偵聽器。我不知道這個流程是否可以完成?如果是這樣,怎麼樣? 客戶端---> Tomcat ---> ActiveMQ ---->服務(Java應用程序)----> ActiveMQ ---> Tomcat --->客戶端ActiveMq與Tomcat的組合

感謝高級!

+0

請參閱此問題。我需要完全一樣的。 http://stackoverflow.com/questions/19706788/jersey-rest-web-service-with-activemq-middleware-integration感謝您的時間。 – Kumar

+0

我只使用Jersey Rest服務而不是Spring框架。我必須將所有收入請求保留在隊列中,然後轉發到資源並獲得結果。重點是正確處理所有http請求。謝謝 – Kumar

回答

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
+0

確定數據可以回覆到正確的客戶端會話?給我更多的信息 – anhdv

+0

如果您希望響應轉到正確的客戶端會話,您需要設置臨時隊列,並在發送JMS消息時將其設置爲客戶端應用程序中的replyTo。 –

+0

客戶端使用網頁瀏覽器發送數據 - > ActiveMQ-> Service-> ActiveMq-> Client? – anhdv

0

是的。我有一個服務解決這些數據,然後將結果發送到ActiveMq,然後將結果顯示給客戶端

+0

Anh請看看這個。謝謝你的時間。 http://stackoverflow.com/questions/19706788/jersey-rest-web-service-with-activemq-middleware-integration – Kumar