일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- mac
- SwiftUI
- darkmode
- stack
- Apple
- window
- Session
- error
- Git
- github
- appstore
- 웹뷰
- Xcode
- Archive
- Realm
- Swift
- Notification
- 한글
- 개발자
- geofencing
- MacOS
- FLUTTER
- JPA
- rxswift
- view
- iOS16
- IOS
- Firebase
- UIButton
- Code
- Today
- Total
EEYatHo 앱 깎는 이야기
Server ) Cannot construct instance of java.time.LocalDateTime 오류 해결 본문
Server ) Cannot construct instance of java.time.LocalDateTime 오류 해결
EEYatHo 2021. 2. 17. 23:27[ 상황 설명 ]
JPA / SpringBoot로 REST API 코딩할 때 생긴 일이다.
디비 시스템에서 AWS의 Redis를 캐시로 사용하고 있었는데,
@Cacheable 어노테이션을 적용한 ( = Redis로 캐시를 하는 ) API에서 저런 오류가 나오는 것이다.
( 오류 메세지 )
Could not read JSON: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at.... (생략)
[ 문제 해결 ]
열심히 찾아본 결과,
LocalDateTime, LocalDate 타입 변수들은 Redis에서 역직렬화로 꺼내올 때 문제가 발생한다.
원인은 LocalDateTime, LocalDate타입을 자바 8부터 지원해서 어쩌구 저쩌구..? 정확히는 아직 모르겠다.
때문에 이 친구들을 JSON직렬화, 역직렬화 해주는 어노테이션을 붙혀줘야한다.
LocalDateTime은
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
LocalDate는
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
이렇게.
'Server' 카테고리의 다른 글
맥에서 로컬 젠킨스 위치, 비로그인 접속 (0) | 2021.03.11 |
---|---|
JPA 검색 구현 (0) | 2021.03.04 |
Server ) AWS RDS JPA Query 쿼리 로그 보는 법 (Cloud Watch) - EEYatHo iOS (0) | 2021.02.18 |
Server ) JPA Query Sort - EEYatHo iOS (0) | 2021.02.18 |
Server ) Could not read JSON: Cannot construct instance of XXXDto, XXXResponse 오류 해결 - EEYatHo iOS (0) | 2021.02.17 |