我们在commons包中使用restemplate用于我们的应用程序。所以我们需要使用泛型类型。
我读了很多关于这方面的解决方案,但似乎没有一个对我们有效,而且我们经常得到(在客户端):
java.util.LinkedHashMap cannot be cast to nc.gouv.dsf.ranch.model.Pays
这是代码(总结):
public List<T> findAll(C criteria) {
[...]
ResponseEntity<List<T>> response =
restTemplateFactory.getRestTemplate().exchange(
url,
HttpMethod.GET,
new HttpEntity<>(createHttpHeaders(srvId)),
new ParameterizedTypeReference<List<T>>() {}
);
return response.getBody();
}
我虽然ParameterizedTypeReference解决了这类问题,但它不起作用。
PS:我们使用的是springboot 1.3.1.RELEASE
答案 0 :(得分:0)
似乎请求正在返回一个Map,我们正在尝试将其转换为列表,因此异常。你能尝试以下方法:
ResponseEntity<Map<String, Object>> response =
restTemplateFactory.getRestTemplate().exchange(
url,
HttpMethod.GET,
new HttpEntity<>(createHttpHeaders(srvId)),
new ParameterizedTypeReference<Map<String, Object>>() {}
);