외부 API 연동해서 데이터를 들고오는 과정에서, JSON 응답값을 Dto로 쌈싸서
로직을 타고 데이터가 저장되야 했다.
응답 JSON 필드 중 DateTime필드가 있어서 해당필드에 @JsonFormat(shape = JsonFormat.Shape.STRING)어노테이션, @DateTimeFormat 어노테이션을 사용해 쌈을 싸려고 했다.
하지만.. 호락호락하지 않은 DateTime.. 바로 발생하는 에러
Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling...
문제의 코드 부분
이것저것 시도해보다가...
Java8에서 추가된 LocalDateTime 항목을 제대로 직렬화 또는 역직렬화를 못하는 현상이라는 것을 발견했다.
Spring Boot 2.0부터 기본으로 포함된 jackson-datatype-jsr310를 사용해야 한다고 한다..
아래처럼 registerModule(JavaTimeModule())를 사용해주면 끗
objectMapper.registerModule(JavaTimeModule()).readValue(responseBody, 뭐식깽Dto::class.java)
'생존형 개발' 카테고리의 다른 글
DataGrip Mysqldump Quick Honey Tip (0) | 2021.12.01 |
---|---|
DDD(DataBase Driven Development) 에서 DD(Domain Driven Development) (0) | 2021.06.02 |
숫자계산은 BigDecimal로 하라구욧! feat. Kotlin (0) | 2021.05.31 |
Git Basic - Local Life Cycle (0) | 2021.05.31 |