如何将xml映射到Object以供RestTemplate使用

时间:2017-04-04 17:22:24

标签: xml spring rest

我正在尝试使用带有Spring Boot的RestTemplate从Web服务中使用xml ...当我从浏览器调用该服务时,响应为:

<ns0:IsMember>
    <inputGroupName>someGroup</inputGroupName>
    <inputUserName>someUserName</inputUserName>
    <member>true</member>
</ns0:IsMember>

我收到错误:

  

无法提取响应:没有为响应类型[class gov.sandia.ode.domain.MetagroupInfo]和内容类型[application / xml]找到合适的HttpMessageConverter。

我认为是因为我的JavaObject没有正确映射到返回值...这是我的java对象

public class MetagroupInfo {
    String inputGroupName;
    String inputUserName;
    Boolean member;
    //getters and setters
}

我的RestTemplate调用如下:

MetagroupInfo response  = restTemplate.getForObject(metagroupUrl, MetagroupInfo.class);

任何想法如何解决这个问题?我在我的pom.xml中包含了spring-boot-starter-web,提前感谢

1 个答案:

答案 0 :(得分:1)

默认情况下,在Eclipse中预先启用了将java对象转换为xml或从xml转换为{x}}。 (这是Jaxb2RootElementHttpMessageConverter的实现。)

在您的问题中,Spring无法确定哪个适合的转换器用于实体MetagroupInfo用于内容类型application / xml。 使用@XMLType或@XMLRootElement 注释您的实体,您的问题将得到解决。