从REST服务传递到Spring应用程序时的对象变形
我有个奇怪的问题,希望你能帮我解决。 我尝试将对象列表从测试服务传递给我的控制器,其中每个对象都包含LocalDate参数(JodaTime库) 这是我的服务提供的方法。它返回对象列表。查看循环中打印的日期。从REST服务传递到Spring应用程序时的对象变形,spring,rest,Spring,Rest,我有个奇怪的问题,希望你能帮我解决。 我尝试将对象列表从测试服务传递给我的控制器,其中每个对象都包含LocalDate参数(JodaTime库) 这是我的服务提供的方法。它返回对象列表。查看循环中打印的日期。 @RequestMapping("/getListaRecept") @ResponseBody public ListaRecept sendAnswer(){ ListaRecept listaReceptFiltered = prescriptionCreator.creat
@RequestMapping("/getListaRecept")
@ResponseBody
public ListaRecept sendAnswer(){
ListaRecept listaReceptFiltered = prescriptionCreator.createListaRecept();
for(Recepta r : listaReceptFiltered.getListaRecept()){
System.out.println(r.toString());
}
return listaReceptFiltered;
}
日期正确
Recepta{id=3, nazwa='nurofen', status=NOT_REALIZED, date=2017-07-27}
Recepta{id=1, nazwa='ibuprom', status=ANNULED, date=2014-12-25}
Recepta{id=2, nazwa='apap', status=REALIZED, date=2016-08-18}
private final RestTemplate restTemplate;
public SgrService2(RestTemplateBuilder restTemplateBuilder) {
this.restTemplate = restTemplateBuilder.build();
this.restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(Charset.forName("UTF-16")));
}
public ListaRecept getList() {
for(Recepta r : this.restTemplate.getForObject("http://localhost:8090/getListaRecept",
ListaRecept.class).getListaRecept()){
System.out.println(r.toString());
}
return this.restTemplate.getForObject("http://localhost:8090/getListaRecept",
ListaRecept.class);
}
现在我正在使用restTemplate从我的SpringBoot应用程序调用此方法。然后将收到的列表打印出来
Recepta{id=3, nazwa='nurofen', status=NOT_REALIZED, date=2017-07-27}
Recepta{id=1, nazwa='ibuprom', status=ANNULED, date=2014-12-25}
Recepta{id=2, nazwa='apap', status=REALIZED, date=2016-08-18}
private final RestTemplate restTemplate;
public SgrService2(RestTemplateBuilder restTemplateBuilder) {
this.restTemplate = restTemplateBuilder.build();
this.restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(Charset.forName("UTF-16")));
}
public ListaRecept getList() {
for(Recepta r : this.restTemplate.getForObject("http://localhost:8090/getListaRecept",
ListaRecept.class).getListaRecept()){
System.out.println(r.toString());
}
return this.restTemplate.getForObject("http://localhost:8090/getListaRecept",
ListaRecept.class);
}
如您所见,所有日期均替换为当前日期:/
Recepta{id=3, nazwa='nurofen', status=NOT_REALIZED, date=2017-09-30}
Recepta{id=1, nazwa='ibuprom', status=ANNULED, date=2017-09-30}
Recepta{id=2, nazwa='apap', status=REALIZED, date=2017-09-30}
我不知道发生了什么。。。
这里有pom依赖项
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.1</version>
</dependency>
乔达时间
乔达时间
2.9.9
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.9.0
com.fasterxml.jackson.core
杰克逊核心
2.9.1
提前感谢您的帮助在我看来,您使用了错误的jackson模块,而不是jsr310(我猜是用于Java 8日期类型),请尝试使用工件
jackson数据类型joda
并注册模块JodaModule在我看来,您使用了错误的jackson模块,尝试使用工件jackson数据类型joda
并注册模块JodaModule
.getListaRecept()
,而不是jsr310(我猜它适用于Java8日期类型)?这似乎是罪魁祸首?这只是一个骗局。我有一个ListaRecept类,它只包含一个文件名为“ListaRecept”。getListaRecept()
的ArrayList,该方法在做什么?这似乎是罪魁祸首?这只是一个骗局。我有一个ListaRecept类,它只包含一个文件名为“ListaRecept”的ArrayList