간단한 스프링 부팅 웹 응용 프로그램 API를 실행 중입니다. 문제는 내가 예외를 던지거나 봄이 예외를 throw 할 때 예외가 항상 Http에 던져지며 기본 오류 페이지를 봄. 오류를 다른 mediatype, 예를 들어 JSON으로 기본 설정하는 방법이 있습니까? 기본적으로 나는 항상 오류가 있어도 json을 원합니다. 그건 그냥 일반 끔찍한로 나는 각 예외 유형에 대한 사용자 지정 @ExceptionHandler를 작성해야하고 싶지 않아 ..스프링 오류의 mediatype 변경
업데이트 :
@ControllerAdvice
@EnableAutoConfiguration
public class ErrorWritter extends ResponseEntityExceptionHandler {
@Override
public ResponseEntity<Object> handleExceptionInternal(Exception ex, Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {
String response = "{\"status\":\""
+ status.toString()
+ "\",\"generic message\":\""
+ status.getReasonPhrase()
+ "\",\"specific message\":\""
+ ex.getMessage()
+ "\" }";
return new ResponseEntity<Object>(response, headers, status);
}
}
이하지 않는 : 저는 여기에 현재 시도하고있는 무슨이다 그러나 아무것도하는 것처럼 보입니다. 봄에 내가 이것을 사용하기를 원한다는 것을 인식시키기 위해해야 할 일이 있습니까?
참고 : Java 구성 및 NOT xml 구성을 사용하고 있습니다.
스프링 자체에서 발생하는 오류도 어떻게 처리 할 수 있습니까? –
같은 글에서'@ ControllerAdvice'에 대한 참고 자료를 찾을 수 있습니다. '@ ExceptionHandler'를 전역 적으로 사용하는 가장 좋은 방법입니다. –
@pragmatical @DaveSyer 글쎄, 내가해야 할 일은 ResponseEntityExceptionHandler를 확장하는 것 뿐이라고 말한다. 나는 내가 지금까지 가지고있는 것으로 내 질문을 편집했다. –