2011-08-03 28 views
0

ソケットを使用してクライアント接続を受け付けるJBoss上で動作する別のJava EEアプリケーション(ホストシステム)に接続する必要のあるJava EEアプリケーションをTomcatで実行しています。ソケット接続を受け入れるJava EEアプリケーションに接続

メッセージを送受信するためにこのシステムに接続するにはどうすればよいですか?

現在、ソケットを使用してJava EEアプリケーション(ホストシステム)にメッセージを送受信しています。しかし、Java EE仕様では、Java EEアプリケーションでソケットを使用するのが悪いことが分かりました。ホストシステムは特定のポート上のソケットを介してクライアントからのリスニングを行っているので、Java Webアプリケーションからこのシステムに接続するにはどうすればよいですか?

+0

ソケット接続を作成する.... – duffymo

+0

「J2EE仕様では、J2EEアプリケーションでソケットを使用するのは悪い習慣です」というメッセージが表示されます。あなたが盲目的にそれを読んで宗教的に従うならば、サーブレットとEJBを書いてはいけません。正しく理解していれば、コンテナで管理できないソケットを作成すべきではありません。 –

答えて

0

これは、Java Message Service(JMS)を使用するように聞こえます。

1

ホストシステムと通信する方法の詳細については、私はちょうど独自のソケットベースのバイナリプロトコルを使用していると仮定しています。純粋にクライアント/サーバーです(リスナーが必要な全二重ではありません)。クライアント側で)。私の頭の上オフ

、私はオプションのカップルを考えることができます。

  1. はrawソケットを使用してください。あまり長く開いておらず、正しく閉じないようにしてください。それは、ホストシステム自体が手紙に対するJava EEの推奨に従っていないように聞こえるので、どうしてでしょうか?

  2. JCA resource adapterを書きます。カスタム/レガシーリソースまたはメッセージングを処理するJava EEの「優先的な」方法。本質的に、これはホストシステムをCommon Client Interface経由でアクセス可能なリソースに変え、コンテナにあなたのソケット/スレッドのライフサイクルを管理させる。

しかし、単純なものであり、エンジニアリングではなく、生のソケットがあなたのために働くかどうかは、あまりにも強制的に使用しないと言います。

カスタムサービスをJCA経由で利用できるようにすることが価値を見ない限り、その努力を正当化するのは難しいでしょう。

ESBプラットフォームを使用して一方のWebサービスを公開し、もう一方のソケットを介してサーバーと通信することもできますが、それはもっと偶然の複雑さです。