티스토리 뷰
BackEnd/SpringBoot
[Debug] - (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 에러 해결
영지는 달리는중 2020. 8. 8. 15:54테스트 코드 작성 중 에러발생
cannot deserialize from Object value 가 핵심 에러인 듯하여 찾아보니 Object Mapper로 매핑이 안되었던 것 같아 확인해 본 결과
*)자바의 객체를 json으로 변환하는 작업을 serialize(직렬화), json을 자바의 객체로 변환하는걸 deserialize(역직렬화)라고 한다.
첫번째 오류, 기본 생성자를 만들지 않았다 ,,,,
Json를 객체에 파싱할 때 객체의 프로퍼티 정보를 알기 위해서는
객체 생성을 위한 기본 생성자(접근 제한자 무관)가 반드시 존재해야 하고,
Getter/Setter/Field 중에 접근 제한자가 위 조건을 만족하는 것이 하나라도 있어야 한다.
(Dto에서 Builder 패턴 사용할 때 AllArgsConstructor 쓰는데, ObjectMapper를 위해서 NoArgsConstructor 를 꼭 추가해줘야 함.)
**) @RequestBody를 바인딩하기 위해서라도 꼭 추가해주기!!
▶ 참고 블로그
두번째 오류, LocalDateTime 필드의 역직렬화 오류
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime createdDate;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime modifiedDate;
LocalDateTime 필드를 @JsonDeserialize 어노테이션을 통해 역직렬화 해주었다
성고옹~
'BackEnd > SpringBoot' 카테고리의 다른 글
[spring] - spring MVC 와 RESTFul 방식의 차이 (0) | 2020.08.23 |
---|---|
[spring] - Spring Data JPA를 사용한 페이징 처리 (0) | 2020.08.09 |
[spring] - JUnit4를 이용하여 스프링부트 테스트 하기 (0) | 2020.08.08 |
[spring] - @RequestParam과 @PathVariable의 차이 (0) | 2020.07.28 |
[Spring]-REST 어플리케이션 예외처리 (0) | 2020.07.22 |