1

WebLogic 10.3.5 で MDB (EJB 3.0) を作成しようとしています。外部 AMQ サーバーのキューをリッスンします。多くの作業とチュートリアルの組み合わせの後、webLogic にデプロイするときに次のエラーが発生します。

[EJB:015027]メッセージ駆動型 EJB はトランザクションですが、JNDI 名で参照される JMS 接続ファクトリ: ActiveMQXAConnectionFactory は JMS XA 接続ファクトリではありません。

これが私が行った作業の概要です。

対応するライブラリを WLS クラスパスに追加し (このチュートリアルhttp://amadei.com.br/blog/index.php/connecting-weblogic-and-activemqに従って)、対応する JMS モジュールをチュートリアル。最初は ActiveMQConnectionFactory を使用し、後で ActiveMQXAConnectionFactory を使用しましたが、jms も無視します。記法は、単純な名前を testQueue として置くだけです。

次に、次の構造を持つ単純な MDB を作成します。「connectionFactoryJndiName」プロパティを明示的に定義しました。そうしないと、WebLogic 接続ファクトリが見つからないと想定され、エラーが発生するためです。

@MessageDriven(
        activationConfig = { 
                @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), 
                @ActivationConfigProperty(propertyName = "destination", propertyValue = "testQueue"),
                @ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "ActiveMQXAConnectionFactory")
        }, 
        mappedName = "testQueue")
public class ROMELReceiver implements MessageListener {

    /**
     * Default constructor. 
     */
    public ROMELReceiver() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see MessageListener#onMessage(Message)
     */
    public void onMessage(Message message) {
        System.out.println("Message received");
    }

}

この時点で、上記のエラーに悩まされています。単に ActiveMQConnectionFactory の代わりに ActiveMQXAConnectionFactory を使用しても、Web ロジック サーバーの JNDI リソース ツリーには、構成済みの接続ファクトリのクラスとして org.apache.activemq.ActiveMQConnectionFactory が表示されます。

私は何かを逃していますか?それとも、WebLogic と AMQ を接続する方法が完全に間違っているのでしょうか?

前もって感謝します。

4

1 に答える 1