Java RestTemplate:如何获取通用列表响应

Java RestTemplate:如何获取通用列表响应,java,spring-boot,resttemplate,Java,Spring Boot,Resttemplate,我们在应用程序的commons包中使用restemplate。所以我们需要使用泛型类型 我读过很多关于这方面的解决方案,但似乎没有一个对我们不起作用,我们经常(在客户端)得到: 以下是代码(总结): 公共列表findAll(C标准){ [...] 响应性响应= restTemplateFactory.getRestTemplate().exchange( 网址, HttpMethod.GET, 新的HttpEntity(createHttpHeaders(srvId)), 新的Parameter

我们在应用程序的commons包中使用restemplate。所以我们需要使用泛型类型

我读过很多关于这方面的解决方案,但似乎没有一个对我们不起作用,我们经常(在客户端)得到:

以下是代码(总结):

公共列表findAll(C标准){
[...]
响应性响应=
restTemplateFactory.getRestTemplate().exchange(
网址,
HttpMethod.GET,
新的HttpEntity(createHttpHeaders(srvId)),
新的ParameteredTypeReference(){}
);          
返回response.getBody();
}
我认为ParameterizedTypeReference是这类问题的解决方案,但它不起作用


PS:我们使用的是springboot 1.3.1.RELEASE

请求似乎返回了一个映射,我们正试图将其强制转换到列表中,因此出现了异常。你能试一下吗

ResponseEntity<Map<String, Object>> response = 
            restTemplateFactory.getRestTemplate().exchange(
                    url, 
                    HttpMethod.GET, 
            new HttpEntity<>(createHttpHeaders(srvId)),
            new ParameterizedTypeReference<Map<String, Object>>() {}
                    );
ResponseEntity响应=
restTemplateFactory.getRestTemplate().exchange(
网址,
HttpMethod.GET,
新的HttpEntity(createHttpHeaders(srvId)),
新的ParameteredTypeReference(){}
);

也不起作用:“org.springframework.http.converter.httpMessageNodeAbleException:无法读取文档:无法从[源代码:java.io]处的START_数组令牌反序列化java.util.LinkedHashMap的实例。ByteArrayInputStream@1e8d552;行:1,列:1];嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:无法从START_数组令牌中反序列化java.util.LinkedHashMap的实例”我还失去了泛型类型与对象的优势。你能添加有问题的示例响应吗?请在问题中添加示例JSON有效负载和更多数据。有相同的问题,并且使用了许多不同的测试框架,我可以向你保证Spring Boot+Hibernate==一场测试噩梦。
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();
}
ResponseEntity<Map<String, Object>> response = 
            restTemplateFactory.getRestTemplate().exchange(
                    url, 
                    HttpMethod.GET, 
            new HttpEntity<>(createHttpHeaders(srvId)),
            new ParameterizedTypeReference<Map<String, Object>>() {}
                    );