JMS侦听器不从队列中拾取消息

时间:2016-02-18 19:38:16

标签: jms

我打算为具有JMS侦听器的现有应用程序进行代码更改。

要测试侦听器是否在我的本地服务器上运行,我将应用程序部署到我的localhost并关闭运行相同应用程序的其他容器。

但我当地的听众却没有收到任何信息。确认其他容器工作正常,可以在队列中拾取和处理新消息。

你能想到任何可能的原因吗?

2 个答案:

答案 0 :(得分:2)

方式过于笼统,缺少太多......但有些事情要看:

  • 如果消息队列在不同的服务器上,您可以从本地设备ping它吗?可能是开发环境无法看到生产服务器,也许

  • netstat -n是否显示正确的端口号,您应该看到一个远程端口,其中包含消息提供程序正在侦听的端口

  • 您可以验证消息提供商是否将您视为消费者?我使用activemq,我可以查看管理控制台,潜入特定队列,并查看活跃的消费者,大多数提供商都会有类似的东西

  • 你在相同的环境中运行吗?在队列为jndi引用的JEE环境中运行侦听器可能在需要实际队列名称的调试器中运行不同

  • 正在进行任何JMS过滤,本地环境的过滤器与队列中的过滤器不匹配?

  • 任何可能妨碍的事务经理?

再一次,只是扔东西看看墙上挂着什么,但这些都是非常明显的事情。

答案 1 :(得分:0)

感谢Scott回答我的问题。

我终于发现Eclipse以某种方式创建了另一个容器,并且我的侦听器已部署到它。这就是我无法在当前容器中找到它的原因。