BugNote
HttpMediaTypeNotAcceptableException: Could not find acceptable representation
제뉴어리맨
2022. 8. 24. 17:33
에러 상황
Controller에서 발생되는
MethodArgumentNotValidException.class 예외처리를 위해
ExceptionHandler를 만들어 주었다.
바로 아래처럼 말이다.
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity MethodArgumentNotValidException(MethodArgumentNotValidException e) {
final List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors(); //유효성 에러를 발생시키는 필드가 여러개 일 수 있으므로
ErrorResponse.FieldError fieldError = new ErrorResponse.FieldError();
List<ErrorResponse.FieldError> errorList = fieldErrors.stream().map(error -> new ErrorResponse.FieldError(
error.getField(), error.getRejectedValue(), error.getDefaultMessage())).collect(Collectors.toList());
ErrorResponse errorResponse = new ErrorResponse(errorList);
return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
}
그리고 테스트를 해보려고 PostMan을 이용하여 HTTP 메소드를 날려보았다.
그랬더니
HttpMediaTypeNotAcceptableException: Could not find acceptable representation 라는 에러 메세지가 발생하였다.
어쨋든 원인을 찾아보니.
위 코드 중 아래의 내용에서 발생되었다.
return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
원인을 찾아보니
FieldError 클래스에 Getter 메소드들이 없어서,
@AllArgsConstructor
@NoArgsConstructor
public static class FieldError{ //static 멤버 클래스
private String field;
private Object rejectedValue;
private String reason;
}
해당 필드값들을 읽어서 HttpResponse 객체를 만드는 과정에서 에러가 난것 같다..
결국 @Getter 애노테이션을 붙여서 해결하였다.
참조 : https://taengsw.tistory.com/49
[에러 해결] HttpMediaTypeNotAcceptableException
스프링 프로젝트를 하면서 REST API를 만드는 도중 다음과 같은 에러를 만났습니다. "org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation... 기존 방식에서..
taengsw.tistory.com