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 を接続する方法が完全に間違っているのでしょうか?
前もって感謝します。