댓글 생성 컨트롤러 테스트 하던중 이런 오류가 뜨고 오류 내용들 알아보니 직렬화- 역직렬화랑 관련이 있는 문제였다.
해석해보니 "HTTP 요청으로부터 전달된 JSON 데이터를 스프링이 해당하는 Java 객체로 변환하려고 시도할 때 발생"
"Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `cohttp://m.todoapp.todoapp.dto.comment.CommentRequestDto` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)]"
CommentRequestDto에는 모든 필드 설정 생성자 @AllArgsConsturctor만 있어서 위에 테스트 코드의 ↓ 이부분에서 기본 매개변수 없은 생성자가 필요한데 없어서 꼬이거나
String dtoJson = objectMapper.writeValueAsString(requestDto);
GPT에 물어보니 "Spring MVC는 Request body를 해당 DTO로 매핑하는 과정에서 문제가 발생할 수 있다" 나왔는데
mvc.perform()의 내부 처리하는 원리는 당연 복잡해서 모르니 지금 상황에서는 일단
직렬화,역직렬화에 대해 다시 복습하고,DTO에도 기본 생성자 @NoArgsConstructor를 설정해줘야한다!
'seok2' 카테고리의 다른 글
[만료된 액세스 토큰 정보 가져오기]JWT expired at 2024-11-18T08:40:20Z. Current time: 2024-11-18T08:41:18Z, a difference of 58493 milliseconds. Allowed clock skew: 0 milliseconds. (0) | 2024.11.18 |
---|---|
N+1문제 (0) | 2024.01.02 |
중간 테이블 데이터 삭제 문제 (0) | 2023.12.29 |
연관 관계 단방향 영속성 전이 Remove 오류 (0) | 2023.12.26 |
Mokito any() (0) | 2023.12.02 |