Spring
[에러해결][Mapstruct]org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
테디규
2023. 2. 21. 10:24
문제상황
MVC 패턴의 Mapstruct를 이용한 Mapper를 이용하는 도중 해당 에러가 발생하였다.
@RestController
@RequestMapping("/answers")
@RequiredArgsConstructor
public class AnswerController {
private final AnswerService answerService;
private final AnswerMapper answerMapper;
@PostMapping
public ResponseEntity postAnswer(@RequestBody AnswerDto.Post postDto){
Answer findAnswer = answerService.createAnswer(answerMapper.answerPostDtoToAnswer(postDto));
return new ResponseEntity(answerMapper.answerToAnswerResponseDto(findAnswer), HttpStatus.CREATED);
}
}
PostDto로 요청 메시지를 받아 엔티티로 변환하고, 엔티티를 ResponseDto로 변환하여 출력하는 소스 코드이다.
@Setter
public static class Response{
private Long answerId;
private Long score;
private Boolean isAccepted;
private String content;
}
Dto는 다음과 같다.
해결 방법
디버깅해보니, 응답해보는 과정에서 발생하는 에러였다.
ResponseEntity 에 들어오는 객체를 변환하는 과정에서 Getter 가 필요한데 내 Response Dto 코드에는 @Getter가 없어서 발생하는 문제였다.
Response 에 @Getter를 추가해주자.