0

rarファイルをjbossのデプロイメントフォルダーに7として配置することにより、rarファイルをデプロイします。後でwarファイルをデプロイします。

このコネクタは、standalone.xml内の定義によりJNDIロケーションにバインドされています。

デプロイされると、createConnectionFactory(ConnectionManager cm)がデフォルトで実行されます。

クラスローダーの助けを借りて、このメソッドでハウスキーピングを行います

ClassLoader contextClassLoader = Thread.currentThread()。getContextClassLoader();

ejbを使用してアダプターにアクセスしようとすると、createConnectionFactory(ConnectionManager cm)メソッドが再度実行されます。

問題は、最初はcontextClassLoaderのデプロイ時にnullです。後でejbから呼び出されたときに値があります。事実上、私のハウスキーピングは失敗します。

質問 :

  1. createConnectionFactory(ConnectionManager cm)は展開時に実行されます=>これは適切な動作ですか?

  2. デプロイ時にこのメソッドを実行しないようにironJacamar/jbossを設定するにはどうすればよいですか?

その他の情報:Jboss As7、NetBeans 7、Jdk1.7

編集:上記の動作は正しいです。私が使用しているアダプターでは、デプロイメント時に使用されるクラスローダーが実行時に使用されるクラスローダーと同じである必要があります。デフォルトでは、Thread.currentThread()。getContextClassLoader()を使用します。ClassLoader cl = MyManagedConnectionFactory.class.getClassLoader();を使用するように変更しました。

4

1 に答える 1

1

デプロイ時に createConnectionFactory(ConnectionManager cm) が実行される => これは正しい動作ですか?

ConnectionFactory 定義がある場合、コンテナーが JNDI 名前空間で ConnectionFactory 定義を作成およびバインドするため、このメソッドが呼び出されることを期待します。シナリオ。

JCA 仕様の第 6 章では、リソース アダプタのこの領域が詳細に説明されているため、決定的な答えはそこにあると思いました。編集:第17章も関連している可能性があります。

于 2011-08-05T11:45:39.427 に答える