发布问题,因为我无法找到针对以下问题的解决方案。
第三部分REST服务之一我们正在消费类似于回复的响应
{ "_id": "d55eb7c0",
"applicationType": "TEST",
"applicationId": "uxhJ1hcT1F8bpL3xAWvTjsymNcd1RArv",
"description": "Some Description"}
尝试映射" _id"属性为,遵循正确的java bean命名
@JsonProperty("_id")
private String id;
会导致以下错误。
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class ] and content type [application/json;charset=utf-8]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:109)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:917)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:901)
如果字段名称是private String _id;
,则json响应被反序列化而没有任何问题。但是我不希望从' _'开始命名字段。在我们的应用程序
我们正在使用Jackson-2.7.3& Spring RestTemplate进行REST调用。
使用端点的实现。它是一个使用Spring RestTemplate的简单GET调用。
HttpEntity<String> requestEntity = new HttpEntity<>(httpHeaders);
return restTemplate.exchange(authorizationProperties.getEndpoint() + "/roles", HttpMethod.GET, requestEntity,new ParameterizedTypeReference<Auth0Roles>() {});
提前致谢。
答案 0 :(得分:0)
我想你需要在访问器方法上应用注释,而不是字段本身:
private String id;
@JsonProperty("_id")
public String getId() {
return this.id;
}
public void setId(String i) {
this.id = i;
}
答案 1 :(得分:0)
它看起来不像JSON的问题。很可能你错过了HttpMessageConverter。
尝试添加此依赖关系
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
</dependency>