外部の WebDav ストレージにアクセスするためのコネクタを開発し、それをスタンドアロン アプリケーション (管理されていない) からも使用したいという同様のケースがありました。
最も簡単な方法は、これを設計レベルで解決し、コネクタのコア ロジックが JCA に依存せず、簡単に再利用できるようにコードを整理することだと思います。次に、コネクタを AS に公開する JCA 固有のコードでこれをラップできます。おそらく、2 つの jar にパッケージ化することもできます。これが、少なくとも私たちが選択したソリューションです (ただし、すべてを 1 つの .jar にパッケージ化しました)。
それ以外の場合、JCA コネクタは次の 3 つの当事者間の「接着剤」です。
- アプリケーションサーバー
- EIS
- アプリケーション コンポーネント。
必要なクラスの軽量実装で AS をシミュレートし、JCA コネクタを直接使用できるはずです。
JCA コネクタに関する AS の主な仕事の 1 つは、接続のプールを管理することです。私の記憶では、実装する必要がある対応するインターフェイスはConnectionManager
.
JCA コネクタは への参照を受け取りますConnectionManager
が、実装は AS 固有です。基本的なプーリングを提供する (またはプーリングをまったく提供しない) 軽量の実装を作成することは、実現可能に思えます。
接続割り当てメカニズムのシーケンス図を一度書いたことがあります。多分あなたはそれが役に立つと思うでしょう。別のインターフェイスはResourceAdapter
、起動/シャットダウンを定義する場所ですが、手動で簡単に呼び出すことができます。
(おそらくそれ以上のものがあります。もちろん、JCA コネクタが使用するものによって異なります。たとえば、 と を使用する場合、Work
モックWorkManager
するのははるかに複雑になります。コネクタがトランザクションの場合も同じです。しかし、あなたの場合ではないようです。)
それ以外の場合、Spring は JCA をある程度サポートしていると思います。彼らがどのようにそれを行ったかを見る価値があるかもしれません。
JCA仕様を読むと、管理されていない環境でコードを実行するためのサポートがあると思われます
あなたが参照している仕様の特定の部分について言及できますか?