【问题标题】:Grails JMS/ActiveMQ stop working whenenver code is changed/recompiled当enver代码更改/重新编译时,Grails JMS/ActiveMQ 停止工作
【发布时间】:2013-03-08 12:53:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: grails jms activemq


    【解决方案1】:

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

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

    2. 错误
      我猜是因为方法名使用了保留字造成的。

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

    我把“reserve”改成了别的东西,它又能用了。

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

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

    【讨论】:

    • 对于它的价值,我也有这个问题。我没有任何编译错误,但清理没有帮助。该应用程序构建得很好,但每次我保存时,我的方法都会停止被调用。我保存后ActiveMQ Web控制台中的消费者数量也是0,所以似乎整个连接都断开了。
    • 感谢您的评论。看来我在这里并不孤单。这个问题没有为我解决。如果我保存该方法,则队列停止工作。我暂时放弃了。希望有人能解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多