我们在服务器端有一个带有 Oracle 11g 和 Apex 的休息 Web 服务。在客户端,我们正在为 android 开发,并使用 Spring 1.0.1 和 Jackson 2.2.3 库来管理其余 web 服务的请求并将 json 数据转换回 pojo。
当 web 服务是“查询”时,它工作得很好。resultset-Json 数据在 Pojos 数组中转换没有问题。但是,当我们尝试对 oracle 过程执行相同操作时,它会因异常而失败。
该过程返回的Json数据如下:
{"item":"{\r\n \"user\" : \"{john}\",\r\n \"profile\" : \"nothing\"\r\n}"}
我尝试了一个在线 Json 验证器,Json 数据似乎是有效的。在标题中,您还可以看到类型是“application/json”。
pojo对象如下:
public class User {
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
private String user;
public String getProfile() {
return profile;
}
public void setProfile(String profile) {
this.profile = profile;
}
private String profile;
}
调用 web 服务并尝试将 json 转换为 pojo 的代码如下(从 spring 示例中复制):
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
User users = restTemplate.getForObject(url, User.class);
最后,当它尝试执行“getForObject”时出现异常:
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [com.xxx.xxx] and content type [text/plain;charset=iso-8859-1]
我尝试对 Gson 库而不是 Jackson 库做同样的事情,同样的例外是 trow。现在我被封锁了几天...
有任何想法吗?我做错了什么?
提前致谢,