티스토리 뷰
스프링 프로젝트를 하면서 REST API를 만드는 도중 다음과 같은 에러를 만났습니다.
"org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation...
기존 방식에서는 http body에 데이터 하나밖에 넘겨줄 수 없었기에, 제네릭을 이용한 공통 리스폰스 객체를 만들고 싶었습니다.
@PostMapping(value = "/login")
public ResponseEntity<String> login(@RequestBody AuthRequest authRequest) throws Exception {
//생략
String token = "token";
return ResponseEntity.status(HttpStatus.OK).body(token);
}
위의 코드를
@PostMapping(value = "/login")
public ResponseEntity<BasicResponse> login(@RequestBody AuthRequest authRequest) throws Exception {
// 생략
String token = "token";
// SuccessResponse는 BasicResponse를 상속받음
return ResponseEntity.status(HttpStatus.OK).body(new SuccessResponse<>(token));
}
으로 바꾸던 중 만난 에러입니다.
핸들러가 클라이언트가 요청한 Type으로 응답을 내려줄 수 없는 것이 원인이었습니다.
이는 SuccessResponse에 Getter가 있지 않아서 생기는 문제였습니다.
SuccessResponse에 @Getter를 추가하여 해결했습니다.
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
스프링 프로젝트 AWS에 올리기 - (1) AWS IAM (0) | 2021.08.16 |
---|---|
[에러 해결] No serializer found for class (0) | 2021.08.14 |
[에러 해결] Post요청시 String형을 @RequestBody로 받는 경우 (0) | 2021.08.01 |
[에러 해결] InvalidDataAccessApiUsageException (1) | 2021.07.25 |
@RequestParam과 @PathVariable (0) | 2021.07.24 |
댓글