我想用Spring的RestTemplate
做一个服务,在我的服务端代码如下:
@PostMapping(path="/savePersonList")
@ResponseBody
public List<Person> generatePersonList(@RequestBody List<Person> person){
return iPersonRestService.generatePersonList(person);
}
在客户端,如果我使用以下代码调用服务:
List<Person> p = (List<Person>) restTemplate.postForObject(url, PersonList, List.class);
我不能将p
对象用作List<Person>
,它将变成LinkedHashList
。经过一些研究,我找到了一个解决方案,即我必须使用exchange方法调用服务:
ResponseEntity<List<Person>> rateResponse = restTemplate.exchange(url, HttpMethod.POST, personListResult, new ParameterizedTypeReference<List<Person>>() {});
并且使用此解决方案,服务器不能接受对象并引发异常,正确的方法是什么?
3条答案
按热度按时间2ekbmq321#
检查您的代码是否如下所示。这应该可以工作。
ujv3wf0j2#
可能对你有帮助。
ne5o7dgx3#
我也遇到过类似的挑战,下面是我的2分。
具有POSTMap的我的控制器类
上述控制器的我的静态URL
我的呼叫者服务