7

Spring Web 3.2 には、DeferredResult非同期リクエスト処理用のクラスが付属しています。setErrorResult何か問題が発生した場合に代替応答を提供するための がありますが、http エラー コードを提供するオプションはありません。

確かに、失敗したリクエストの http 応答コードを制御できるはずです..新しい Spring API を使用してそれを行うにはどうすればよいですか?

4

3 に答える 3

7

メソッドのドキュメントsetErrorResultは次のように書かれています。

DeferredResult のエラー値を設定して処理します。値は Exception または Throwable である場合があり、その場合、ハンドラーが例外を発生させたかのように処理されます。

を設定するExceptionことで、必要なコードを返す例外ハンドラーをトリガーできると思います。

于 2013-02-01T11:15:01.573 に答える
0

引数として渡す例外には、setErrorResult注釈を付けることができます@ResponseStatus。たとえば、独自の例外クラスを作成します。

  @ResponseStatus(HttpStatus.NOT_FOUND)
  class NotFoundException extends RuntimeException {
     // add your own constructors to set the error message
     // and/or cause. See RuntimeException for valid ctors 
  }
次に、コードで、作成したコンストラクターでそれを使用します。次に例を示します。
  deferredResult.setErrorResult(new NotFoundException(reason, cause));
于 2019-01-10T09:21:47.260 に答える