質問

私は、JBoss [EAP] 5.0.0.GAを使用していると私は、彼らが使用するJMSキューの存在に依存する一部のMDBを含むEJB JARを含むEARを持っています。私は.../server/all/deploy/messaging/myqueues-service.xmlにキューを設定した場合は問題ありませんでした。

しかし、私は直接のJBossの設定に変更を加えることを避けるためにEARファイル内のキューを設定したかったです。問題ありません、私はEARのルートに私のmyqueues-service.xmlファイルを入れて、次のように私のjboss-app.xmlへの参照を追加します:

<jboss-app>
    <module-order>strict</module-order>
    <loader-repository>
        seam.jboss.org:loader=my-ear.ear
    </loader-repository>
    <module>
        <service>myqueues-service.xml</service>
    </module>
</jboss-app>
私はそれを行う際にしかし、JBossの負荷(私の-ear.earに含まれる)EJB jarファイルを最初にして、その後JMSキューを設定します。このエラーの結果はMDBがロードされたときます:

12:16:02,714 WARN  [JmsActivation] Failure in jms activation org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@13a59e .....
javax.naming.NameNotFoundException: MyQueue not bound

これは、成功したJMSへの再接続など、後のMDB上、大きな問題ではありません

12:16:12,698 INFO  [JmsActivation] Attempting to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@f91ad5
12:16:12,823 INFO  [JmsActivation] Reconnected with messaging provider.

しかし、私はすべてのエラーを避けるために本当に欲しい、と私はEJB jarをロードする前に、まずJMSキューを設定するにJBossを強制する方法が必要であることを行うためです。これを実行する方法はありますか?参考のため、ここではEARのためのapplication.xmlです:

<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
  <display-name>my-ear</display-name>
  <module>
    <ejb>my-ejb.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>my.war</web-uri>
      <context-root>myroot</context-root>
    </web>
  </module>
</application>

任意の提案を高く評価した。

役に立ちましたか?

解決

[OK]を、 jaikiran PAI のcommunity.jbossに。 orgのフォーラムは、私を助けました。解決策は、MDBへの依存としてJMSキューを追加することです。私の場合は、@depends注釈を使用します:

@MessageDriven(activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
        @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/MyQueue") })
@Depends("jboss.messaging.destination:service=Queue,name=MyQueue")
public class MyMessageListener implements MessageListener {
    ...
}

あなたは注釈を使用していない場合は、同じ使用のjboss.xmlを行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top