앱-스프링부트 간 API를 주고받으며 아래와 같은 에러가 발생했다.
앱 사이드:
D/OkHttp: {"timestamp":"2022-07-29T05:03:15.315+00:00","status":400,"error":"Bad Request","message":"","path":"/api/match"}
retrofit2.HttpException: HTTP 400
서버 사이드:
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.randomchat.request.MatchRequest` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.randomchat.request.MatchRequest` (although at least one Creator exists)
HTTP 400 에러. 찾아보니, Bad Request 에러. 요청이 잘못되었나 보다.
처음엔 앱 사이드와 서버 사이드의 Request 클래스의 패키지명이 달라서 생기는 문제인 줄 알았다.
그래서 패키지명을 동일하게 맞췄지만, 실패.
예전에도 사용했던 스프링부트, 레트로핏 구조인데 왜 그러지??
찾아보니,
해결방법:
서버 사이드의 Request 클래스에 기본 생성자가 없으면 Jackson Library가 에러를 일으킨다고 함 -_-;;;
그래서 data class 형태였던 Request를 굳~~이 빈 construct()까지 넣어주면서 해결했다.
'SpringBoot' 카테고리의 다른 글
스프링부트 패키지 아래에 SpringBootApplication을 두지 않았을 때 문제 (0) | 2022.07.29 |
---|