1

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

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

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

4

1 回答 1

0

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

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

  2. 错误
    它是由我猜的方法名称使用保留字引起的。

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

我将“保留”更改为其他内容,它再次起作用。

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

编辑(06-07-2013):又错了,它只是短暂地工作。

于 2013-03-23T19:04:07.237 回答