본문으로 바로가기

Java 8 LocalDateTime 직렬화/역직렬화 문제

 

 

1. 오류 메시지

Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310"

LocalDateTime 필드를 ObejctMapper 함수를 써서 가져올 경우 Java 8에서 추가된 LocalDateTime 항목을 제대로 직렬화 또는 역직렬화를 못하는 현상

 

2. 해결

 

1. jackson버전을 2.9.4로 낮추는 방법 (이 방법으로는 하지 않았다)

 

 

💡 2. jackson버전을 최신버전 (2.12.4) 로 유지한 채 add Module 하기 (현재 버전을 유지하고 싶어 이걸로 해결)

 

 

🔻 build.gradle

implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.4'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'

위와 같이 프로젝트의 jackson.core 버전이 2.12.4 이므로

 

(1) 에러메시지의 충고를 따라서 jackson-datatype-jsr310 을 추가해주었다.

 

 

(2) 그리고 번거롭지만 ObejctMapper 객체를 생성하는 부분마다 registerModule을 해주어야 한다.

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());

 

(참고) Maven 프로젝트의 경우 아래 게시글을 참고하면 된다.

https://codingexplore.tistory.com/83

 

[ 의문점 데이터 ] Maven to Gradle : Maven Dependency 설정 Gradle로 옮기기

Maven to Gradle Maven dependency 설정 Gradle로 옮기기 (groupId, artifactId, version 관련) 📌 Maven으로 프로젝트를 해와서 그런지 gradle 설정이 익숙하지 않아서 정리해둔다 🔻 Maven 설정파일 Maven 프로..

codingexplore.tistory.com

 

반응형