2012-02-13 83 views
3

我在ActiveMQ上有許多目標(隊列)部署在單獨的服務器上。我想從我的程序中動態偵聽這些目的地。目前我正在收聽這些目的地,如下所示:JMS監聽器 - 動態選擇目標

<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> 
    <property name="brokerURL" value="failover://(tcp://192.168.25.26:61616)" />   
</bean> 

<bean id="myMessageListener" class="MyMessageListener"></bean> 

<jms:listener-container 
    container-type="default" 
    connection-factory="jmsConnectionFactory" 
    acknowledge="auto" > 
     <jms:listener destination="TEST.FOO" ref="myMessageListener" /> 
     <jms:listener destination="foo.bas" ref="myMessageListener" /> 
     <jms:listener destination="foo.bar" ref="myMessageListener" />   
</jms:listener-container> 

我能夠成功接收來自這些目的地的消息。但是,正如您所看到的,我必須在上述配置中手動添加目的地。我想跳過這一點,並傾向於傾聽者動態選擇目的地。這可能嗎?怎麼樣?非常感謝任何形式的幫助/指導!

回答

1

看看Composite DestinationsDestination Wildcards的文檔,這兩個功能可以讓你有一些東西接近你要求的東西。

+0

感謝您的回覆。如何動態創建特定目的地的偵聽器?在我上面的代碼中,我明確地綁定了一個偵聽器和一個目標。我希望偵聽器根據接收/偵聽的消息動態綁定到目標。幫助表示讚賞。 – Faisal 2012-02-14 10:47:26

+0

簡短的回答,你不能。 – 2012-02-14 11:44:19

+0

我見過這樣的代碼:'org.springframework.jms.support.destination.DynamicDestinationResolver'這樣的任務。我是Spring/JMS的新手,所以我無法完全理解它。 – Faisal 2012-02-14 12:07:05