Server
[Spring] Jackson을 통한 LocalDateTime 매핑 시 deserialize 에러 해결
니용
2021. 12. 16. 18:34
반응형
DTO 를 Redis 에 넣어 호출하려는 와중 다음과 같은 에러가 발생하였습니다.
org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
찾아보니 이 방법은 Java의 Jackson Mapper의 버전와 관련된 문제여서 이전의 경우 Serialize를 하지 못해 발생하는 문제였습니다. 그래서 무작정 Jackson 버전을 올리면 관련 Dependency의 위험부담이 있어 jackson-datatype-jsr310 라이브러리를 pom.xml 또는 build.gradle 파일에 추가하였습니다.
https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.0
그리고 DTO 클래스의 LocalDateTime 타입을 사용하는 변수 위에 아래와 같이 어노테이션 매핑을 해줍니다.
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime createAt;
반응형