[2019-04-11] Spring RestTemplate response deserialize 중 HttpMessageNotReadableException
삽질 2019. 4. 11. 15:23외부 API를 Spring RestTemplate로 호출하는데
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON:
Can not instantiate value of type java.util.HashMap from String value ('fail'); no single-String constructor/factory method
위의 Exception이 발생.
restTemplate.exchange에 세팅한 responseType class는 아래의
TestResponse.java
API 호출 class
ApiTest.java
외부 API에서 응답 데이터를
위 처럼 넘겨줄 때는 정상적으로 변환되어 TestResponse의 HashMap<String, Object> result에 세팅되나,
아래와 같이 response가 오게되면
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON:
Can not instantiate value of type java.util.HashMap from String value ('fail'); no single-String constructor/factory method
위 에러 발생(HashMap에 "fail" 이라는 String value 값을 세팅할 수 없다(?))
외부 API를 수정할 수 없어(?) 서버쪽에서 변환 시 예외 처리를 하도록 함.
CustomDeserializer.java
생성한 CustomDeserializer를 TestResponse에 설정
TestResponse.java
이제 {"result":"success"} 형태도 받을 수 있음.
result.get("msg").toString() == "success"
'삽질' 카테고리의 다른 글
[2020-02-13] ios webview에서 hyperlink long press 시에 link preview 뜨지 않도록 제어하기 (0) | 2020.02.13 |
---|---|
[2019-04-15] iOS 12.2 업데이트 후, Safari 에서 window.opener 가 안됨 (0) | 2019.04.15 |
[2019-04-05] iOS webview stops after javascript alert call (0) | 2019.04.08 |
[2019-03-25] apache keep no slash and response http status 200 (0) | 2019.03.25 |
[2018-11-12] logback 로그 레벨을 변경했는데 톰캣 서버가 재기동 됨 (0) | 2018.11.12 |