我正在使用springframework -RestTemplate,
为了发出get request,并将xml响应转换为java对象。
操作后:RestTemplate.exchange,
我有以下异常:

org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not instantiate value of type [simple type, class Order] from


来自客户端的XML响应,我将其添加到标题中:

headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));


那么,为什么要尝试将响应解析为JSON?
以及如何解决?

谢谢!!

最佳答案

最常见的原因是您得到的XML不符合模型中定义的反序列化规则(或者它是格式错误的XML)。

其他可能的原因是您的RestTemplate缺少能够处理XML转换的消息转换器。默认情况下,Spring Boot配置一个Jaxb2RootElementHttpMessageConverter,但是仅当您在类路径中有JAXB2时,因此您应该检查此依赖项是否可用于您的项目。

您可以使用以下代码打印在RestTemplate中注册了哪些消息转换器以及它们接受的媒体类型:

for (HttpMessageConverter<?> converter : restTemplate.getMessageConverters()) {
    System.out.println("Converter: " + converter.getClass().getSimpleName() + ", supports: "
                + converter.getSupportedMediaTypes().toString());
}

关于java - 使用Spring时获取HttpMessageNotReadableException异常-RestTemplate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42293504/

10-13 05:25