这很奇怪。我将 JMS 与 ActiveMQ 一起使用。在开发模式下,一切正常,但每当我在控制器或服务方法中编辑任何代码时,队列就会停止工作。
从日志中我可以看到消息已发送到队列,但从未被消费者接收/处理。我必须停止运行应用程序并重新运行 grails 运行应用程序。发送到队列的消息在重新启动时得到处理。我无法弄清楚是什么原因造成的。任何人都可以解释一下吗?非常感谢。
我正在使用带有 JMS 1.2 插件和 ActiveMQ 5.7.0 的 Grails 2.2.1
我自己想通了。所以有两个问题结合在一起并导致了这种奇怪的行为。
缓存的类
我必须运行 grails clean,然后 grails compile 给了我一个关于 JMS bean 无法启动的错误
错误
它是由我猜的方法名称使用保留字引起的。
@Queue(name="quickBook")
def reserve(msg) {}
我将“保留”更改为其他内容,它再次起作用。
编辑:
好吧,我错了第二个。由于某种原因,注释@Queue 导致了问题。所以我不得不改用服务方法 onMessage() 。
编辑(06-07-2013):又错了,它只是短暂地工作。