2012-03-25 4 views
1

私はjavaサーブレットを持っており、サーバーが指定された入力でエラーを検出したことをクライアントに知らせるメソッドを書いています。エラーが発生しました。処理を中断して停止できますか?

クライアントは、私が何をしたいのですがどのようなhandleErrors()

というメソッドを呼び出します。このメソッドは、サーバーに要求を送信したプロセスを停止するためのものです。スレッドが割り込みをここで使用するか、これらのようなエラーに対処するより良い方法ですか?ここで

を短縮概要です:

サーバー: "AB££" - 2つの文字、2つのシンボル

クライアント::

は次のようにフォーマットされた文字列を期待されています

送信:badMethod()は "££££"を送信します

サーバー:

の戻り値: "エラー"

クライアント:

がエラーを実現し、(handleErrorMethodを実行します)完全badMethod()を停止します。

私はこれが明確な質問であり、詐欺ではないことを望みます。

TIA

+0

エラーメッセージが送信されたときにサーバー側の方法が停止していますか?なぜクライアントはもうそれを停止するために別の方法を呼び出す必要がありますか? – davidfrancis

+0

はいサーバーは作業を終了しましたが、メソッドは特定の戻り値を期待していましたが、その戻り値なしに続行するとエラーが発生します。私はこのような多くのメソッドを持っている、私はhandleErrorMethod()が呼び出されたときに実行されているメソッドを停止する方法が欲しい。 –

+0

'badMethod'を別のスレッドで処理し、グローバル(静的)コレクション内のこのスレッドへの参照を保持すると、' handleErrorMethod'はスレッドのセットを中断してコレクションから取得できます。 – Diego

答えて

0

RESTfulなサービスでは、典型的なフローは400の範囲でHTTPエラーステータスを返すサーバーを伴うだろう、あなたのクライアントは点検し、それに応じて対応すべき、(422はここで良いフィットかもしれません)。メッセージペイロードに「エラー」を使用しても問題はありませんが、いくつかの既存の基準を考慮する必要があります。しかし、クライアントに応答が返ってくると、サーバーはループから外れ、すべてのプログラミングはクライアントにとってローカルになります。

クライアントもJavaで書かれている(私は推測したくない)場合は、任意の数の手法を使用できます。 @EJPがクライアントでhandleErrors()を使用するように提案すると、単純で洗練された解決策のように思えます。あなたの呼び出しメソッドbadMethod()は中断され、例外をキャッチしたり、呼び出し元に例外をバブルしたりする可能性があります。