0

JCA を使用して、WebSphere 内から低レベルのネットワーク リソースとやり取りしてきましたが、Tomcat から外部の同じネットワーク リソースにアクセスできるようにする必要があります (つまり、管理された環境ではありません)。ネットワーク通信とプロトコルのレイアウトは非常に冗長であるため、数千行のコードをコピー/貼り付けすることは避けたいと考えています (そして、それらを個別に維持する必要があります)。

JCA仕様を読むと、管理されていない環境(Tomcatなど)でコードを実行するためのサポートがあると思われます。残念ながら、インターフェイスがをするべきか、または管理された環境の外からそれらを呼び出す方法がわかりません (仕様はかなりあいまいです)。

管理されていない環境で使用できるように JCA を変更する方法を示す実装例はありますか?

ありがとう!

4

1 に答える 1

1

外部の WebDav ストレージにアクセスするためのコネクタを開発し、それをスタンドアロン アプリケーション (管理されていない) からも使用したいという同様のケースがありました。

最も簡単な方法は、これを設計レベルで解決し、コネクタのコア ロジックが JCA に依存せず、簡単に再利用できるようにコードを整理することだと思います。次に、コネクタを AS に公開する JCA 固有のコードでこれをラップできます。おそらく、2 つの jar にパッケージ化することもできます。これが、少なくとも私たちが選択したソリューションです (ただし、すべてを 1 つの .jar にパッケージ化しました)。

それ以外の場合、JCA コネクタは次の 3 つの当事者間の「接着剤」です。

  1. アプリケーションサーバー
  2. EIS
  3. アプリケーション コンポーネント。

必要なクラスの軽量実装で AS をシミュレートし、JCA コネクタを直接使用できるはずです。

JCA コネクタに関する AS の主な仕事の 1 つは、接続のプールを管理することです。私の記憶では、実装する必要がある対応するインターフェイスはConnectionManager.

JCA コネクタは への参照を受け取りますConnectionManagerが、実装は AS 固有です。基本的なプーリングを提供する (またはプーリングをまったく提供しない) 軽量の実装を作成することは、実現可能に思えます。

接続割り当てメカニズムのシーケンス図を一度書いたことがあります。多分あなたはそれが役に立つと思うでしょう。別のインターフェイスはResourceAdapter、起動/シャットダウンを定義する場所ですが、手動で簡単に呼び出すことができます。

(おそらくそれ以上のものがあります。もちろん、JCA コネクタが使用するものによって異なります。たとえば、 と を使用する場合、WorkモックWorkManagerするのははるかに複雑になります。コネクタがトランザクションの場合も同じです。しかし、あなたの場合ではないようです。)

それ以外の場合、Spring は JCA をある程度サポートしていると思います。彼らがどのようにそれを行ったかを見る価値があるかもしれません。

JCA仕様を読むと、管理されていない環境でコードを実行するためのサポートがあると思われます

あなたが参照している仕様の特定の部分について言及できますか?

于 2010-05-03T20:25:55.337 に答える