RestClientException: Could not extract response: no suitable HttpMessageConverter found for response
生活随笔
收集整理的這篇文章主要介紹了
RestClientException: Could not extract response: no suitable HttpMessageConverter found for response
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天請求百度的鷹眼服務返回下面的錯誤:
?
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.GetDistanceResultDto] and content type [text/javascript;charset=UTF-8]at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:121)at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:994)at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:977)at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736)at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:669)at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:607)at com.hebeiwanteng.drivingserver.basic.utils.HttpRequsetUtil.exchange(HttpRequsetUtil.java:84)?
無法提取響應:沒有為響應類型[class com..getDistanceResultTo]和內容類型[text/javascript]找到合適的HttpMessageConverter;字符集=UTF-8]
這一下就知道怎么處理了? 在 HttpMessageConverter??增加?MediaType 是 ?[text/javascript] 類型的;
代碼如下:
private static final RestTemplate restTemplate = createRestTemplate();synchronized static RestTemplate createRestTemplate() {RestTemplate restTemplate = new RestTemplate();MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8,MediaType.APPLICATION_JSON,MediaType.TEXT_HTML,MediaType.TEXT_PLAIN));restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);return restTemplate;}重點來了:
org.springframework.http.MediaType 中沒有 ?[text/javascript] .?
所以需要自己定義代碼如下:
?
MediaType textMediaType = MediaType.parseMediaType("text/javascript;charset=UTF-8");?
把自己定義的?textMediaType? 添加到上面自己定義的?MappingJackson2HttpMessageConverter 中;
?
synchronized static RestTemplate createRestTemplate() {RestTemplate restTemplate = new RestTemplate();MediaType textMediaType = MediaType.parseMediaType("text/javascript;charset=UTF-8");MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8,MediaType.APPLICATION_JSON,MediaType.TEXT_HTML,textMediaType,MediaType.TEXT_PLAIN));restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);return restTemplate;}?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的RestClientException: Could not extract response: no suitable HttpMessageConverter found for response的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 写Java要用什么编译器最好?
- 下一篇: 端口映射器与端口映射软件的区别及内网发布