メッセージブローカーとしてRabbitMQを使用するようにJB EAP7を設定するのが難しいです。 私はrabbitmqモジュールを作成し、スタンドアロンのha.xmlにグローバルモジュールとして定義しました。WildBirdをRabbitMQに接続するように設定するには?
モジュール/システム/層/ベース/ COM/RabbitMQの/メイン/ module.xml:
<module xmlns="urn:jboss:module:1.1" name="com.rabbitmq">
<resources>
<resource-root path="rabbitmq-jms-1.7.0.jar"/>
<resource-root path="amqp-client-4.2.0.jar" />
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.transaction.api"/>
<module name="org.slf4j"/>
</dependencies>
</module>
JB7が問題なく起動。しかし、私は、MDBはActiveMQの接続(私は推測Wildflyのデフォルトプロバイダ)にバインドしようとしていることを示す、私のserver.logに以下を参照してください。
2017-08-29 17:24:09,193 INFO [org.jboss.as.ejb3]WFLYEJB0042: Started message driven bean 'Subscriber' with 'activemq-ra' resource adapter
2017-08-29 17:24:09,368 INFO [javax.enterprise.resource.webcontainer.jsf.config]Initializing Mojarra 2.2.12-jbossorg-2 for context '/webapp-0.0.1-SNAPSHOT'
2017-08-29 17:24:09,462 INFO [org.apache.activemq.artemis.ra]AMQ151000: awaiting topic/queue creation java:/global/mq/kodo
2017-08-29 17:24:10,103 INFO [org.wildfly.extension.undertow]WFLYUT0021: Registered web context: /webapp-0.0.1-SNAPSHOT
2017-08-29 17:24:10,285 INFO [org.jboss.as.server]WFLYSRV0010: Deployed "webapp-0.0.1-SNAPSHOT.war" (runtime-name : "webapp-0.0.1-SNAPSHOT.war")
2017-08-29 17:24:10,286 INFO [org.jboss.as.server]WFLYSRV0010: Deployed "kodo-jdo.rar" (runtime-name : "kodo-jdo.rar")
2017-08-29 17:24:11,465 INFO [org.apache.activemq.artemis.ra]AMQ151001: Attempting to reconnect org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec([email protected]71 destination=java:/global/mq/kodo destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15)
私は私の中で特定するかどうかはわかりません私は、MDBに私のRabbitMQで定義されたConnectionFactoryを使用させたいと考えています。私のMDBは、次のように定義されています:
しかし、どこで/どのようにConnectionFactoryを指定するのかわかりません。私は@JMSConnectionFactory(String JNDI)
アノテーションをクラスに追加しようとしましたが、私はまだ同じ結果を得ています。
RabbitMQモジュール定義に何か不足していますか?私のMDBには注釈が付けられていませんか? RabbitMQ ConnectionFactoryを使用してMessage Brokerに接続するようにMDBを設定するには、何が必要ですか?
感謝をwildflyするRabbitMQのJMSクライアントの統合をテストしたときに私がしたコードの一部を共有しようとします。私はMDBのアイデアをあきらめ、メッセージリスナーとCDI(スタンドアロンのha.xmlからConnectionFactoryとQueueの定義を取得する)だけを使用しています。 –
ここでは、自動回復、またはJMSクライアントを使用したタイムアウトの処理方法に問題があります。https://stackoverflow.com/q/46007414/827480を参照してください。JMSクライアントによる例外処理を処理する方法を理解しましたか? –
これは技術的にJMSクライアントに実装できますか、またはJMSのMDB要件が本質的に不可能なAMQPですか?そして、私たちが話している特定のJMS機能は何ですか? –