2010-07-14 64 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