【发布时间】:2018-03-23 09:45:06
【问题描述】:
我正计划对具有 JMS 侦听器的现有应用程序进行代码更改。
为了测试监听器是否在我的本地服务器上工作,我将应用程序部署到我的本地主机并关闭运行相同应用程序的其他容器。
但我的本地听众不会收到任何消息。确认其他容器工作正常,可以提取和处理队列中的新消息。
你能想到任何可能的原因吗?
【问题讨论】:
标签: jms
我正计划对具有 JMS 侦听器的现有应用程序进行代码更改。
为了测试监听器是否在我的本地服务器上工作,我将应用程序部署到我的本地主机并关闭运行相同应用程序的其他容器。
但我的本地听众不会收到任何消息。确认其他容器工作正常,可以提取和处理队列中的新消息。
你能想到任何可能的原因吗?
【问题讨论】:
标签: jms
太笼统了,漏掉的点太多了……但有些东西要看看:
如果消息队列在不同的服务器上,你能从本地设备 ping 它吗?可能是开发环境看不到生产服务器,也许
netstat -n 是否显示正确的端口号,您应该会看到一个远程端口以及消息提供程序正在侦听的端口
您能否验证消息传递提供者是否将您视为消费者?我用的是activemq,我可以查看管理控制台,潜入特定队列,查看活跃消费者,大多数提供者都会有类似的东西
您是否在相同的环境中运行?在队列是 jndi 引用的 JEE 环境中运行侦听器可能与在需要实际队列名称的调试器中运行不同
任何 JMS 过滤正在进行,本地环境的过滤器与队列中已有的过滤器不匹配?
任何事务管理器的东西可能会阻碍?
再一次,只是扔东西看看有什么东西粘在墙上,但这些都是很明显的东西。
【讨论】:
感谢 Scott 回答我的问题。
我终于发现 Eclipse 以某种方式创建了另一个容器,并且我的侦听器被部署到了它。这就是为什么我找不到它在我当前的容器中工作的原因。
【讨论】: