spring 中无法构造 `java.security.Timestamp` 错误的实例 Rest
Cannot construct instance of `java.security.Timestamp` Error in spring Rest
我有一个简单的 Rest 控制器,如下所示:
@PostMapping(value = "/DepositBalance")
public DepositBalanceResponse DepositBalance(@Valid @RequestBody DepositBalanceRequest requestDto) throws Exception {
return depositService.GetDepositBalance(requestDto);
}
这是 DepositBalanceRequest 字段:
private String profileId;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp timestamp;
当我像这样通过 Postman 调用服务时:
{
"profileId":"asdfasdf",
"userName":"username",
"timestamp":"2018-12-30 20:12:20",
}
我收到以下错误:
"Type definition error: [simple type, class java.security.Timestamp]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.security.Timestamp` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2018-12-30 20:12:20')\n at [Source: (PushbackInputStream); line: 4, column: 14] (through reference chain: com.api.v1.deposit.DepositBalanceRequest[\"timestamp\"])"
我想知道我是否错过了什么?
感谢M.Deinum,
需要使用 LocalDateTime 而不是 Timestamp
private String profileId;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timestamp;
我有一个简单的 Rest 控制器,如下所示:
@PostMapping(value = "/DepositBalance")
public DepositBalanceResponse DepositBalance(@Valid @RequestBody DepositBalanceRequest requestDto) throws Exception {
return depositService.GetDepositBalance(requestDto);
}
这是 DepositBalanceRequest 字段:
private String profileId;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp timestamp;
当我像这样通过 Postman 调用服务时:
{
"profileId":"asdfasdf",
"userName":"username",
"timestamp":"2018-12-30 20:12:20",
}
我收到以下错误:
"Type definition error: [simple type, class java.security.Timestamp]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.security.Timestamp` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2018-12-30 20:12:20')\n at [Source: (PushbackInputStream); line: 4, column: 14] (through reference chain: com.api.v1.deposit.DepositBalanceRequest[\"timestamp\"])"
我想知道我是否错过了什么?
感谢M.Deinum, 需要使用 LocalDateTime 而不是 Timestamp
private String profileId;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timestamp;