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