org.springframework.web.client.RestClientException: Could not extract response

sping boot项目使用RestTemplate远程调用报如下错误:

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map] and content type [text/html;charset=utf-8]

因为我代码已经上线修改了,这里就不做回滚提供错误示例了,这里就提供一个思路。。。,跟踪到比较底层一些的源码,会发现这个报错的原因是RestTemplate内置的几个HttpMessageConverter对象中,没有支持text/html这种类型的HttpMessageConverter,所以就没办法得到对应的HttpMessageConverter对象来对相应的返回结果做转换。

解决方法:
自定义一个转换器,提供对报错类型的支持

在这里插入图片描述
这里面红框标记出来的都是某种类型的转换器,看下它们的源码,参考一下,或者直接面向百度编程,就可以写出自定义转换器了,然后把自定义转换器加到RestTemplate的HttpMessageConverter集合中:

List<HttpMessageConverter<?>> messageConverterList = restTemplate.getMessageConverters();

messageConverterList.add(自定义转换器);

通过加上自定义转换器,这个错误就解决了。

发布了297 篇原创文章 · 获赞 311 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/105199976
今日推荐