0

別のサーバーからサービスを取得する JAX-WS Web サービスを開発しています。このサービスを使用するには、ソケットを開いてソケットを閉じる必要があります。

展開時にソケットを開き、Web サービスの展開時にソケットを閉じる方法を探しています。

@PostConstruct と @PreDestroy を使用する予定でしたが、要件を満たしていません

@PostConstruct は、メソッド対応プールに新しいインスタンスが追加されたときにのみ呼び出されます

@PreDestroy は、アプリケーション サーバーが Method-Ready プールのサイズを縮小することを決定した場合にのみ呼び出されます。つまり、@WebService のインスタンスを保持する必要がないと判断した場合にのみ呼び出されます。

これを解決する方法をお勧めします。リクエストごとにソケットを開いたり閉じたりしようとしましたが、クライアント側でタイムアウトになります。

よろしく、イムラン

4

1 に答える 1

0

コンストラクターまたは PostConstruct 注釈付きメソッドで、静的ソケットが初期化されているかどうかを確認できます (たとえば、null 以外)。必要に応じて初期化します。

ロードされたインスタンスの数で静的 int を維持する必要がある場合は可能です。

その後、Finalize または PreDestroy のいずれかでカウンターを減らし、0 に達した場合はソケットを破棄できます。

于 2012-08-17T08:30:50.360 に答える