0

プロジェクトに JMS を統合し、from servletcontext リスナーを呼び出しているときに例外を取得しました が、ActiveMQConnectionFactory cannot be cast to javax.jms.QueueConnectionFactoryメソッドから正常に動作し、非同期でキューからメッセージを受信できます。インターフェイスを実装する JMS レシーバー関数での同じアプローチ。JMS receiverpublic static void mainqueueconnectionqueuesessionqconnectionMessageListener

servletcontextlistenerメッセージキューを自動的にリッスンするために使用しているため、Webアプリの起動時にJMSレシーバーまたはコンシューマーを自動的に起動する最良の方法を教えてください。

(両方ともメソッドから正常JMS queuesenderqueuereceiver動作し、メソッドから メソッドpublic static void mainを呼び出した後にのみ問題が発生します)queuereceivercontextinitialize

4

2 に答える 2

1

多分この投稿はあなたを助けることができます。

クラスパスに ActiveMQ-jar の 2 つのバージョンがあった原因は、ポスターによると。

私の場合、原因はクラスパス内の 2 つのバージョンの javax.jms でした。ActiveMQ に付属していたものと、ソースをコンパイルするために使用していたものです (ActiveMQ は、アプリケーションの単なるテスト依存関係であると想定されています)。Maven 依存関係 javax.jms:jms:1.1 のスコープをコンパイルから提供に変更しました。これにより、WAR ファイルから javax.jms-jar が削除され、例外が消えました。

于 2013-05-19T20:20:17.040 に答える
0

はい、バージョンの問題があります。これらのバージョンの activemq、jms、および j2ee 依存関係を使用して、この問題を修正できました。

ActiveMQ 5.8.0 以降

  • activemq-broker- 5.8.0
  • activemq-client- 5.8.0
  • geronimo-jms_ 1.1 _spec-1.1.1
  • geronimo-j2ee-management_ 1.1 _spec-1.0.1

ActiveMQ の以前のバージョン

  • activemq-core- 5.5.1
  • geronimo-j2ee-management_ 1.0 _spec-1.0
  • geronimo-jms_ 1.1 _spec-1.1.1

役立つバージョンを確認してください

于 2015-04-07T12:07:11.433 に答える