我打算为具有JMS侦听器的现有应用程序进行代码更改。
要测试侦听器是否在我的本地服务器上运行,我将应用程序部署到我的localhost并关闭运行相同应用程序的其他容器。
但我当地的听众却没有收到任何信息。确认其他容器工作正常,可以在队列中拾取和处理新消息。
你能想到任何可能的原因吗?
答案 0 :(得分:2)
方式过于笼统,缺少太多......但有些事情要看:
如果消息队列在不同的服务器上,您可以从本地设备ping它吗?可能是开发环境无法看到生产服务器,也许
netstat -n是否显示正确的端口号,您应该看到一个远程端口,其中包含消息提供程序正在侦听的端口
您可以验证消息提供商是否将您视为消费者?我使用activemq,我可以查看管理控制台,潜入特定队列,并查看活跃的消费者,大多数提供商都会有类似的东西
你在相同的环境中运行吗?在队列为jndi引用的JEE环境中运行侦听器可能在需要实际队列名称的调试器中运行不同
正在进行任何JMS过滤,本地环境的过滤器与队列中的过滤器不匹配?
任何可能妨碍的事务经理?
再一次,只是扔东西看看墙上挂着什么,但这些都是非常明显的事情。
答案 1 :(得分:0)
感谢Scott回答我的问题。
我终于发现Eclipse以某种方式创建了另一个容器,并且我的侦听器已部署到它。这就是我无法在当前容器中找到它的原因。