我创建了这个restTemplate bean ..
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder
.messageConverters(Collections.singletonList(new MappingJackson2HttpMessageConverter()))
.build();
}
你可以看到我设置了messageConverter。
但是当我在服务类中使用bean时...我得到一个像这样的错误
“RestClientException:无法写入请求:找不到合适的HttpMessageConverter请求类型。”
这是我服务类中的代码。
ResponseEntity<ProcessGroupEntity> response = this.restTemplate.exchange(RequestEntity.post(new URI(uri))
.contentType(MediaType.APPLICATION_JSON)
.body(foo)
, Foo.class);
现在我尝试在调用exchange之前设置消息转换器。
this.restTemplate.setMessageConverters(Collections.singletonList(new MappingJackson2HttpMessageConverter()));
ResponseEntity<ProcessGroupEntity> response = this.restTemplate.exchange(RequestEntity.post(new URI(uri))
.contentType(MediaType.APPLICATION_JSON)
.body(foo)
, Foo.class);
并且代码有效。所以我的问题是为什么RestTemplateBuilder的messageConverter()方法在设置/添加转换器时似乎失败了。?
编辑:
这是我如何在我的服务类
中注入restTemplate beanprivate final RestTemplate restTemplate;
...
@Autowired
public SomeService(RestTemplate restTemplate,
...) {
this.restTemplate = restTemplate;
}