2010-07-14 65 views
2

我正在使用Spring會話感知消息偵聽器來偵聽多個JMS隊列。有什麼方法可以獲得傳入消息源的JNDI名稱?我試圖使用getJMSDestination,但這隻給我顯示名稱。如何獲取jms消息源的jndi名稱

謝謝。

+0

如果您要發送所有消息,則可以將JNDI名稱(或其他源標識符)添加到消息本身。 – DwB 2010-10-05 20:40:15

回答

0

我不認爲你可以。源可能甚至沒有JNDI名稱 - 例如,如果消息是從消息傳遞提供程序控制臺發送的,或者是從spring(而不是從應用程序服務器)發送的。

我認爲該消息不包含有關發件人的任何信息,除非手動將其包含在屬性的形式中。

更新:目的地也是如此 - 它們由消息傳遞提供程序名稱唯一標識,該名稱也可能缺少JNDI名稱。例如,我現在在spring中使用ActiveMQ,並且沒有任何JNDI名稱。 JNDI名稱是客戶端在其容器內引用某個主題/隊列的名稱,並且不是存儲在JMS消息中的信息。

+0

我認爲問題是找出消息到達的幾個隊列中的哪一個隊列,而不是消息的起始位置。那麼,多個隊列中的一個聽衆會收到一條消息,該隊列是否到達? OP可以使用getJMSDestination獲取隊列的傳輸提供者名稱,但無法獲取表示隊列的JNDI名稱。 – 2010-07-15 02:35:33

+0

@ T.Rob謝謝,我添加了一個更新 – Bozho 2010-07-15 05:36:34