[java] LocalDateTime SerializationException 이슈 By starseat 2022-11-18 15:35:43 java/spring Post Tags 개발 중 `org.springframework.data.redis.serializer.SerializationException`이 Exception 이 발생하였다. - Exception 내용 ```java 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: kr.co.starbucks.display.domain.sku.model.entity.Policy["editDtm"]); nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling ``` ### 1차 구글링을 해보니 (Exception Message 에도 있지만...) `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` 이걸 추가하라고 한다. [Maven Repository](https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310) 에서 검색 후 추가 하였다. - build.gradle ```text ... dependencies { ... //########## Utils ##########// // java LocalDateTime 역직렬화 implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.0' } ``` ## 2차 추가하였는데도 Exception 이 발생한다. 이런 저런 방법을 강구하던 중에 `LocalDateTime` 을 사용하는 부분에 아래 `Annotation` 을 추가하여 해결하였다. ```java @JsonSerialize(using= LocalDateTimeSerializer.class) @JsonDeserialize(using= LocalDateTimeDeserializer.class) ``` - 사용 예 ```java public class Temp { @JsonSerialize(using= LocalDateTimeSerializer.class) @JsonDeserialize(using= LocalDateTimeDeserializer.class) private LocalDateTime createdAt; } ``` 일단은 문제 해결이 되었지만 다른 방법이 있는지 강구해봐야겠다. Previous Post [java] JPA 영속 컨텍스트 & 라이프사이클 Next Post [spring] Teams Message Push 및 FeginClient 추가