0

我在我的代码中调用了一个休息端点,该端点返回一个简单的字符串“true”或“false”。我已将我的弹簧靴升级到 2.4。下面的代码现在正在抛出异常。

 ResponseEntity<Boolean> status = restTemplate.getForEntity(uri, Boolean.class);

org.springframework.web.client.UnknownContentTypeException:无法提取响应:在 org.springframework.web.client.HttpMessageConverterExtractor.extractData 中找不到响应类型 [class java.lang.Boolean] 和内容类型 [application/json] 的合适 HttpMessageConverter (HttpMessageConverterExtractor.java:126) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:1037) ~[spring-web- 5.3.8.jar:5.3.8] 在 org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:1020) ~[spring-web-5.3.8.jar:5.3.8] 在 org. springframework.web.client.RestTemplate.doExecute(RestTemplate.java:778) ~[spring-web-5.3.8.jar:5.3.8]

如何解决这个问题?

问候,大卫

4

2 回答 2

0

restTemplate没有合适的 MessageConverters 时会发生此错误。默认情况下restTemplate,Spring Boot 提供了可以转换布尔响应的消息转换器。

但是,如果您覆盖消息转换器列表,例如如下 - restTemplate.setMessageConverters(Arrays.asList(new ByteArrayHttpMessageConverter()));

然后,Spring boot 将无法转换消息。

只需验证添加到restTemplate您正在使用的实例的消息转换器是什么,并检查是否MappingJackson2HttpMessageConverter存在。或者您可以使用自己的自定义消息转换器。

于 2021-07-05T10:19:14.920 回答
0

删除刚刚添加的响应实体,如下所示。

Boolean  status = restTemplate.getForEntity(uri, Boolean.class);
于 2021-07-06T16:47:20.580 回答