私はレスポンスとしてXmlを返すREST APIメソッドを1つ持っています。簡単にするために単純な例外をスローすると仮定します。Spring mvc - XMLとJSONレスポンスのエラー処理のコンフィグレーション
@RequestMapping(value = "machine/xmlData", method = RequestMethod.GET, produces = "application/xml")
public ResponseEntity<String> getXml(HttpServletRequest request)
throws Exception {
return getDataFromService();
}
ここでは、このようなRESTコントローラで例外を処理しています。 これは、一般的な例外のハンドル他のAPIメソッドのための方法、同様である(XMLまたはJSONレスポンス)
@ExceptionHandler(Exception.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseEntity HandleException(Exception ex, HttpServletRequest request) {
ex.printStackTrace();
// here logic to generate Custom error Object
return new ResponseEntity<Object>(customErrorObject, HttpStatus.INTERNAL_SERVER_ERROR);
}
ケース1:は受け入れる:「アプリケーション/ XML」とサービスから有効な応答を すべてが正常に動作します。
ケース2:受け入れ:HandleExceptionからResponseEntityがJSONであるため、サービス から "アプリケーション/ XML" と例外を、私は私の理解あたりとして406 Not Representable
を得ることが
で、受け入れるヘッダー は "application/xml"という理由で私が406になっているということです。
とにかく私はエラーを送信することができますxmlとjsonとしてHandleExceptionメソッドからの応答? REST APIメソッドでは、このようなものを定義できることがわかりましたproduces={"application/json","application/xml"}
HandleExceptionメソッドにこれを入れるのが苦労しています。
ヒントがあれば助けになるはずです。
ありがとうございました。
handleExceptionで@ResponseStatusを削除し、 – kuhajeyan
@kuhajeyanを試してみてください。役に立たないです。私は – Roxy