Jackson LocalDateTime not supported 에러 해결

Rookedsysc·2024년 11월 3일
post-thumbnail

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.LocalDateTime not 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을 달아주면 해결이 된다.

0개의 댓글