2017-04-11 279 views
0

我打一个服务找到一个人的细节,响应是类似下面的XML格式:org.springframework.web.client.RestClientException:无法提取响应:没有合适的HttpMessageConverter发现

<ArrayOfPersonResults xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<PersonResults> 
<Name>John Doe</Name> 
<State>NY</State> 
<Zip>12345</Zip> 
</PersonResults> 
</ArrayOfPersonResults> 

我正在使用Spring RestTempate和映射到下面的POJO响应,

public class Person { 

    private String zip; 

    private String name; 

    private String state; 


    public String getZip() { 
     return zip; 
    } 
@JsonProperty("Zip") 
    public void setZip(String zip) { 
     this.zip = zip; 
    } 

    public String getName() { 
     return name; 
    } 
@JsonProperty("Name") 
    public void setName(String name) { 
     this.name = name; 
    } 

    public String getState() { 
     return state; 
    } 

@JsonProperty("State") 
    public void setState(String state) { 
     this.state = state; 
    } 

} 

我用剩下的模板调用服务,

public Person[] getPersosn(String personId) { 
     try { 
      return getRestTemplate().getForObject(personServiceURL, Person[].class, personId); 
     } catch (Exception e) { 
      return null; 
     } 
    } 

但我一直收到异常, org.springframework.web.client.RestClientException:无法提取响应:找不到适合的响应类型HttpMessageConverter [class [Lcom.cdk.dataloader.model.Person;]和内容类型[application/json; charset = utf-8]

我不知道为什么我得到这个,任何帮助表示赞赏。

+0

您的内容是XML还是JSON? – holmis83

+0

内容为xml格式。我通过在我的pom.xml中添加jackson-databind依赖项来解决此问题。 – Raskill

回答

0

您的内容类型为application/json;charset=utf-8,但您得到了XML。将内容转换为JSON或将内容类型更改为其中之一text/xml, application/xml

+0

我已经设置了内容类型,如 httpHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); 但我仍然得到异常, org.springframework.web.client.RestClientException:无法提取响应:没有找到合适的HttpMessageConverter响应类型[class [Lcom.cdk.dataloader.model.State;]和内容类型[应用/ JSON;字符集= UTF-16] – Raskill

相关问题