【发布时间】:2020-04-12 14:24:06
【问题描述】:
在 spring boot 2.2.2 中,java 11 通过 Ibm mq 接收到一个对象。
收到的对象具有 LocalDate 数据类型。
项目在 maven 中有 spring-boot-starter-web starter。
我在项目中看到了这些 jar
杰克逊数据类型 -jdk 8-2.10.1 杰克逊数据类型-jsr310-2.10.1
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class BillingEvent {
public Long Id;
public LocalDate billingCreatedDate;
}
在我的属性中
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
我得到的错误
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 不能 构造
java.time.LocalDate的实例(没有创建者,默认 构造,存在):没有字符串参数构造函数/工厂方法 从字符串值('2019-09-02')反序列化
【问题讨论】:
-
这与 IBM MQ 有什么关系?
-
不,不回答
-
你可以尝试在 billingCreatedDate 属性上使用 @JsonDeserialize(using = LocalDateDeserializer.class) @JsonSerialize(using = LocalDateSerializer.class)。
-
这意味着要转换为
java.time类 (JavaTimeModule) 的模块尚未向对象映射器注册。
标签: java spring-boot jackson deserialization localdate