当更改/重新编译代码时,Grails JMS / ActiveMQ停止工作

时间:2013-03-19 17:29:08

标签: grails jms activemq

这很奇怪。我正在使用JMS和ActiveMQ。在开发模式下,一切正常,但每当我编辑控制器或服务方法中的任何代码时,队列就会停止工作。

从日志中我可以看到消息已发送到队列但从未被消费者接收/处理过。我必须停止运行应用程序并重新运行grails run-app。发送到队列的消息在重新启动时得到处理。我无法弄清楚是什么造成的。任何人都能解释一下吗?非常感谢。

我正在使用带有JMS 1.2插件和ActiveMQ 5.7.0的Grails 2.2.1

1 个答案:

答案 0 :(得分:0)

我自己想出来了。所以有两个问题结合在一起并导致了这种奇怪的行为。

  1. 缓存课程 我必须运行grails clean,然后grails编译给我一个关于JMS bean无法启动的错误

  2. 错误
    这是因为我猜方法名使用保留字。

  3.   

    @Queue(name="quickBook")
    def reserve(msg) {}
    

    我将“保留”更改为其他内容,然后再次运行。

    编辑:
    好吧,我错了第二个。由于某种原因,注释@Queue导致了问题。所以我不得不使用服务方法onMessage()代替。

    编辑(06-07-2013): 再次错了,它只是简单地工作。