에러 : DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]
배경 :(Sopt 1주차 세미나) ResponseEntity를 이용해서 서버의 응답확인 API생성시 발생
@RestController
@RequestMapping("/api")
public class HealthCheckController {
@GetMapping("v5")
public ResponseEntity<HealthCheckResponse> healthCheck5(){
return ResponseEntity.ok(new HealthCheckResponse());
}
}
public class HealthCheckResponse {
private static final String STATUS ="OK";
private String status;
public HealthCheckResponse(){
this.status=STATUS;
}
}
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
406 에러는 서버가 허용된 타입의 응답을 생성하지 못할 때 발생하는 통신 에러입니다
요청 핸들러가 허용된 응답을 만들어낼 수 없을 때 발생하는 에러로
여기서 허용된 응답이란 헤더에 정해놓은 허용 타입입니다!
즉 요청한 type으로 응답을 내려줄 수 없는 것이 원인이었습니다!
저의 상황에선 응답 내용에 값이 포함되지 않아서 발생한 문제였습니다
‘HealthCheckResponse’에 ‘@Getter’ 어노테이션을 추가해서 해결할 수 있었습니다
@Getter
public class HealthCheckResponse {
private static final String STATUS ="OK";
private String status;
public HealthCheckResponse(){
this.status=STATUS;
}
}