1

@ExceptionHandlerを含め、マップされたメソッドへのパラメーターとしてHttpServletResponseを使用するなど、これをいくつかの異なる方法で試しました。

@RequestMapping(value="/update", method=RequestMethod.POST)
public ResponseEntity<String> update(final HttpEntity<String> requestEntity) {
    try {
        // stuff
        return new ResponseEntity<String>("", HttpStatus.NO_CONTENT);
    } catch (MyDataException e) {
        return new ResponseEntity<String>(e.toJSONString(), HttpStatus.BAD_REQUEST);
    }
}

必要なのは、応答本文としてのtoJSONStringの内容だけです。ただし、HttpStatus.BAD_REQUEST値が設定されている場合、システムはデフォルトのTomcatエラーページを使用します。エラーステータスに設定しないと、意図したとおりにボディが作成されます。ただし、エラーステータスを設定する必要があります。

私が言ったように、私はこれをSpring MVC APIで約4つの異なる方法で試しましたが、それらはすべて、私が望む方法で応答を処理する代わりに、sendError()が呼び出されたように見えます。

4

1 に答える 1

0

これは実際にはPEBKACの場合であり、不十分に記述されたhttpプロキシが応答本文をTomcatエラーページに積極的に置き換えていることを認識できませんでした。

于 2012-07-02T21:44:10.390 に答える