【发布时间】:2010-07-14 18:48:07
【问题描述】:
我正在使用 Spring Session Aware Message Listener 来监听多个 JMS 队列。有什么方法可以获取传入消息源的 JNDI 名称?我曾尝试使用 getJMSDestination,但这只给了我显示名称。
谢谢。
【问题讨论】:
-
如果您要发送所有消息,您可以将 JNDI 名称(或其他一些源标识符)添加到消息本身。
我正在使用 Spring Session Aware Message Listener 来监听多个 JMS 队列。有什么方法可以获取传入消息源的 JNDI 名称?我曾尝试使用 getJMSDestination,但这只给了我显示名称。
谢谢。
【问题讨论】:
我不认为你可以。源甚至可能没有 JNDI 名称 - 例如,如果消息是从消息传递提供程序控制台或从 spring(而不是从应用服务器)发送的。
我认为该消息不包含有关发件人的任何信息,除非它以属性的形式手动包含它。
更新:目的地也是如此——它们由消息传递提供程序名称唯一标识,该名称同样可能缺少 JNDI 名称。例如,我现在将 ActiveMQ 与 spring 一起使用,并且没有任何 JNDI 名称。 JNDI 名称是客户端引用其容器内的某个主题/队列的名称,而不是存储在 JMS 消息中的信息。
【讨论】: