1

作業中の私たちのチームは、NetBeans7.1.2が提供するすべてのツールを使用してWebサービスを開発することを選択しました。

残念ながら、私たちのWebサービスは不安定すぎて、多くの場合オフラインになっています。それは私たちが今解決できないものです。私たちの決定は、クライアントにタイムアウトを実装することでした。しかし、それに関するオプションやドキュメントは見つかりませんでした。

たとえば、サービスが応答を返すのに5秒かかる場合に、クライアントに例外をスローさせる方法はありますか?したがって、この例外をキャッチしてビューのフローを処理することはできません。

スレッドとタイムカウンターを使用して実装する方法があるので質問していますが、他のプログラマーがすでに同じ問題を抱えていることは明らかです。

ちなみに、JAX-WSを使用しています。

どうもありがとう。

4

2 に答える 2

2

java.util.concurrentパッケージクラスを使用します。たとえば、Futureインスタンスをtimeout:future.get(5, TimeUnit.SECONDS)で実行できます。また、TimeoutExceptionを除いて、必要に応じて反応できます。

Future<String> future = executor.submit(new Callable<String>() {
    public String call() {
        return webService.executeServiceMethod();
    }
});
try {
    String result = future.get(5, TimeUnit.SECONDS);
    processResult(result);
} catch (TimeoutException ex) {
    displayMessageToUserOrExecuteAgain();
}
于 2012-11-09T19:33:41.960 に答える
0

Webサービスクライアントはタイムアウトを使用して設定できます。これを参照してくださいhttps://community.jboss.org/thread/156015jboss でjax-wsクライアントリクエストのタイムアウトをプログラムで設定するにはどうすればよいですか?

于 2012-11-10T03:35:20.263 に答える