java.time不存在_无法构造`java.time.ZonedDateTime`的实例(不存在像默认构造那样的创建者)...

在使用JAX-RS 1.0和Jackson进行JSON反序列化时,遇到无法构造`java.time.ZonedDateTime`实例的错误。问题源于没有找到适合从字符串反序列化的构造函数。尽管已注册JavaTimeModule,但仍然出现此错误。堆栈跟踪显示在尝试反序列化'2018-05-26T09:48:31.622+02:00'时失败。
摘要由CSDN通过智能技术生成

我正在使用JAX-RS 1.0学习Jackson。服务器返回HTTP响应,如下所示:

{

"url": "http://localhost:8080/api/123",

"created": "2018-05-26T09:21:26.301+02:00"

}

并且我需要将JSON响应反序列化为Java对象ProductCreated:

public class ProductCreated {

@JsonProperty("created")

private final ZonedDateTime created;

@JsonProperty("url")

private final String url;

public ProductCreated(String url) {

this.url = url;

this.created = ZonedDateTime.now();

}

@JsonCreator

public ProductCreated(

@JsonProperty("url") String url,

@JsonProperty("created") ZonedDateTime created) {

this.url = url;

this.created = created;

}

public String getUrl() {

return url;

}

public ZonedDateTime getCreated() {

return created;

}

}

在我的测试中,它无法构造ProductCreated对象:

Product p = new Product("123", "foo");

ProductCreated c = wr.type(MediaType.APPLICATION_JSON)

.accept(MediaType.APPLICATION_JSON)

.post(ProductCreated.class, p);

客户端错误是:

无法构造java.time.ZonedDateTime(没有创建者,例如默认构造的实例)的实例:没有要从字符串值反序列化的字符串参数构造函数/工厂方法(‘2018-05-26T09:21:26.301

+ 02:00’)

在服务器端,我配置了JSON映射器(但是测试对客户端没有影响?):

private static JacksonJsonProvider newJacksonJsonProvider() {

ObjectMapper mapper =

new ObjectMap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值