본문 바로가기
Spring/TroubleShooting

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<java.lang.Object>` from Object value (token `JsonToken.START_OBJECT`)

by Mecodata 2024. 4. 12.

현상

- RestTemplate.postForEntity()를 통해 데이터를 전송할 때 데이터의 타입을 지정하는 세번째 파라미터에 List.class를 적용하였더니 해당 에러가 발생 

 

원인

- 해당 에러는 RestTemplate.postForEntity()의 세번째 파라미터가 List.class일 경우 데이터 전송 시 List를 구성하는 데이터의 타입 정보가 유실되어 역직렬화에 대한 데이터 타입을 알 수 없어 에러가 발생

 

해결 방법

- 요청 수령 시 데이터를 처리하는 API를 하나로 개발하지 않고 DTO 종류별 API로 나눠 개발하여 각 API에서 @RequestBody의 데이터 타입을 제네릭에 와일드카드(?)를 사용하지 않고 List<CarDto>처럼 명확히 정의하여 해결

 

댓글