하나의 REST API 메서드가 있습니다. 응답으로 Xml을 반환합니다. 단순함을 위해 단순한 Exception을 발생시키는 것으로 가정합니다.봄 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 : 수락 : 서비스 에서 "응용 프로그램/XML"과 예외가
을 내 이해 당으로서 다음 내가
406 Not Representable
을 얻을 HandleException에서 ResponseEntity는 JSON이기 때문에 accept header 은 "application/xml"입니다. 왜 제가 406을 얻는 지요.
어쨌든 내가 오류를 보낼 수 있습니까 xml 및 json으로 HandleException 메서드에서 응답? REST API 메소드에 대해 다음과 같이 정의 할 수 있습니다. produces={"application/json","application/xml"}
HandleException 메소드에 넣으 려합니다.
팁이 도움이 될 것입니다.
감사합니다.
handleException에서 @ResponseStatus를 제거하고 시도하십시오 – kuhajeyan
@kuhajeyan 도움이되지 않습니다. 나는 – Roxy