【问题标题】:How can I get the jndi name of the source of a jms message如何获取 jms 消息源的 jndi 名称
【发布时间】:2010-07-14 18:48:07
【问题描述】:

我正在使用 Spring Session Aware Message Listener 来监听多个 JMS 队列。有什么方法可以获取传入消息源的 JNDI 名称?我曾尝试使用 getJMSDestination,但这只给了我显示名称。

谢谢。

【问题讨论】:

  • 如果您要发送所有消息,您可以将 JNDI 名称(或其他一些源标识符)添加到消息本身。

标签: java spring jms


【解决方案1】:

我不认为你可以。源甚至可能没有 JNDI 名称 - 例如,如果消息是从消息传递提供程序控制台或从 spring(而不是从应用服务器)发送的。

我认为该消息不包含有关发件人的任何信息,除非它以属性的形式手动包含它。

更新:目的地也是如此——它们由消息传递提供程序名称唯一标识,该名称同样可能缺少 JNDI 名称。例如,我现在将 ActiveMQ 与 spring 一起使用,并且没有任何 JNDI 名称。 JNDI 名称是客户端引用其容器内的某个主题/队列的名称,而不是存储在 JMS 消息中的信息。

【讨论】:

  • 我认为问题是要弄清楚消息到达的几个队列中的哪一个,而不是消息的来源。那么,多个队列上的一个侦听器收到一条消息,它到达了哪个队列? OP 可以通过 getJMSDestination 获取队列的传输提供者的名称,但无法获取代表队列的 JNDI 名称。
猜你喜欢
  • 1970-01-01
  • 2013-11-07
  • 2018-02-13
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 2018-01-04
相关资源
最近更新 更多