0

ソケットを使用して1つのIPをリッスンするこの単純なJava関数があります。

void main()

(...)


Socket client = new Socket("192.168.9.2",63333);

DataOutputStream out=new DataOutputStream(client.getOutputStream());
DataInputStream in=new DataInputStream(client.getInputStream()); 

while (userInput == 1) {
      System.out.println(in.readLine());
}

(...)

正常に動作しますが、問題は、WAS 7.0にインストールし、main関数を1回実行して、プロセスを開始する必要があることです。

WAS 7.0でそれを行うにはどうすればよいですか?

よろしく、
ペドロ

4

1 に答える 1

1

Java EEの推奨事項に従って、コンテナー内のソケットを開かないようにする必要があります。とにかく必要な場合は、これを開始する方法が必要です。いくつかのオプションがあります。

リモートで呼び出すことができるメソッド(RMI ...)を使用してEJBセッションBeanを作成し、このメソッドにデータを入れます。

WASを自動的に開始する場合は、EJBタイマーを使用してタスクの実行をスケジュールできます。

呼び出し時にこのようなことを行うサーブレットを作成することもできます。

ソケットを管理するためにスレッドを開始することを検討する必要がありますが、のような条件に達したときに、スレッドはそれ自体で停止できる必要がありますwhile (userInput == 1)

これは、WASのようなアプリケーションサーバーで行うのは奇妙に聞こえますが、それは可能です。

SAP XIで同様のタスクを実行するには、クライアントソケットを管理するために複数のスレッドを開始するセッションEJBを作成します。

于 2011-03-14T19:53:10.417 に答える