티스토리 뷰
Framework/Spring
Cannot deserialize instance of `java.io.File` out of START_OBJECT token 오류 조치
호형 2021. 2. 25. 12:41com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.io.File` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 1]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1468) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1242) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1148) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.deser.std.FromStringDeserializer.deserialize(FromStringDeserializer.java:177) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4526) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3521) ~[jackson-databind-2.11.4.jar:2.11.4]
RestTemplate을 활용해서 parameter와 함께 요청을 보낼 때 위와 같은 오류가 발생하였다.
ResponseEntity<File> response = restTemplate.postForEntity("http://localhost:8080/sendMessage",
requestEntity, File.class);
이것은 수정 전 ResponseEntity를 정의한 모습이다. 여기서 <File> 이라고 정의한 부분에 문제가 있는것이다.
requestEntity를 정의할때 <String, Object> 로 정의를 했는데 File을 넘겨서 문제가 생긴 것이다.
ResponseEntity<String> response = restTemplate.postForEntity("http://localhost:8080/sendMessage",
requestEntity, String.class);
위와 같이 ResponseEntity를 String으로 정의해주면 문제는 해결된다.
끝!
'Framework > Spring' 카테고리의 다른 글
댓글