1

これは非常に奇妙です。私は ActiveMQ で JMS を使用しています。開発モードでは、すべて正常に動作しますが、コントローラーまたはサービス メソッドのコードを編集するたびに、キューが機能しなくなります。

ログから、メッセージがキューに送信されたが、コンシューマーによって受信/処理されていないことがわかります。run-app を停止して、grails run-app を再実行する必要があります。キューに送信されたメッセージは、再起動時に処理されました。何が原因なのかわかりませんでした。誰か光を当てることができますか?どうもありがとう。

JMS 1.2プラグインとActiveMQ 5.7.0でGrails 2.2.1を使用しています

4

1 に答える 1

0

私はこれを自分で理解しました。したがって、2つの問題が組み合わされて、この奇妙な動作を引き起こしました。

  1. キャッシュされたクラス
    grailsをクリーンに実行する必要があります。その後、grailsのコンパイルにより、JMSBeanを開始できないというエラーが発生しました。

  2. エラー
    これは、メソッド名に予約語を使用したことが原因だと思います。

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

「予約」を別のものに変更しましたが、再び機能します。

編集:
申し分なく、私は2番目のものについて間違っていました。何らかの理由で、アノテーション@Queueが問題を引き起こしました。そのため、代わりにサービスメソッドonMessage()を使用する必要がありました。

編集(06-07-2013):再び間違っていました、それは短時間しか機能しませんでした。

于 2013-03-23T19:04:07.237 に答える