
Jackson 라이브러리에서 Java 8의 LocalDataTime을 지원하지 않는다. ObjectMapper로 LocalDateTime을 변환할려고 할 시에 아래와 같은 에러가 발생하게 된다.
2024-11-03T19:55:58.618+09:00 ERROR 154 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.data.redis.serializer.SerializationException: Could not write JSON: Java 8 date/time type
java.time.LocalDateTimenot supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: com.gamemoonchul.domain.entity.Post["member"]->com.gamemoonchul.domain.entity.Member["privacyAgreedAt"])] with root cause
위 에러를 해결하기 위해서 아래 Dependency를 추가하고
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.16.1'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
LocalDateTime을 사용중인 Field 위에
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime privacyAgreedAt;
Annotation을 달아주면 해결이 된다.