我使用 springboot 返回一个 LocalDateTime 和 LocalDate 参数,所以我在后面放了:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.0.12.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.2</version>
</dependency>
并在应用程序属性中:
spring.jackson.serialization.write_dates_as_timestamps=false
所以现在我的背部返回这两种类型:
entrada": "2017-01-01T22:00:00", // LocalDateTime
"previsao": "2017-01-01",//LocalDate
在我面前我使用:
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.1.2.Final</version>
</dependency>
在我的课堂上:
ResteasyClient client;
ProtocoloClient protocoloClient;
public ProtocoloClientImpl() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule())
;
client = new ResteasyClientBuilder().register(mapper).build();
ResteasyWebTarget target = client.target("http://localhost:8181/");
protocoloClient = target.proxy(ProtocoloClient.class);
}
因此,当我回电时,我得到了错误:
javax.ws.rs.client.ResponseProcessingException:javax.ws.rs.ProcessingException:org.codehaus.jackson.map.JsonMappingException:无法从JSON字符串实例化类型[简单类型,类java.time.LocalDateTime]的值;没有单字符串构造函数/工厂方法(通过引用链:br.com.exmart.indicadorRTDPJ.service.rest.vo.ProtocoloVO["entrada"])
我已经尝试放入我的
public class ProtocoloVO {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime entrada;
但得到了同样的错误
我已经试着把
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime entrada;