Spring RestTemplateBuilder不会添加MessageConverters

时间:2017-08-17 06:42:34

标签: spring spring-boot spring-web

我创建了这个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 bean
private final RestTemplate restTemplate;
...

@Autowired
public SomeService(RestTemplate restTemplate,
                      ...) {

    this.restTemplate = restTemplate;
}

0 个答案:

没有答案