gpt4 book ai didi

java - 无法将类型 'java.lang.String' 的值转换为所需类型 'java.util.Date'

转载 作者:行者123 更新时间:2023-11-30 10:05:08 30 4
gpt4 key购买 nike

我有 2 个微服务通过伪装进行通信。一个微服务正在公开另一个正在调用的方法。该方法将日期作为参数。

这是方法的代码:

@Override
public String verifyWorkingDaysByAccesstimeAndAttendanceDate(@PathVariable int accessTimeId,
@PathVariable("attendanceDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Date attendanceDate) {

AccessTime accessTime = accessTimeService.findByIDService(AccessTime.class, accessTimeId);

String day = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(attendanceDate).toUpperCase();
String status = "NOT_VERIFIED";

if (workingDayservice.findWorkingDaysByAccesstimeAndDate(accessTime, attendanceDate).toString().contains(day)) {
status = "VERIFIED";
}

return status;

}

==> 如您所见,它正在获取日期并验证其在数据库中的存在。

另一个微服务正在使用这个 feign 类来调用这个方法:

@FeignClient(name = "access-control-micro-services-access-time")
public interface AccessTimeClient {

@RequestMapping(value = "/api/v${webService.currentVersion}/workingDay/accessTime/{accessTimeId}/{attendanceDate}", method = RequestMethod.GET)
String verifyWorkingDaysByAccesstimeAndAttendanceDate(@PathVariable("accessTimeId") int accessTimeId,
@PathVariable("attendanceDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Date attendanceDate);

==> 第二个微服务正在另一个类中调用此方法,并为其提供从数据库中检索的日期(格式:2019-03-29 08:38:08)

我的代码启动了这个异常:

Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.PathVariable @org.springframework.format.annotation.DateTimeFormat java.util.Date] for value '2019-03-29 08:38:08.0'; nested exception is java.lang.IllegalArgumentException: Invalid format: \"2019-03-29 08:38:08.0\" is malformed at \" 08:38:08.0\""

最佳答案

根据问题 Feign client doesn't serialize java.time.LocalDate's correctly #104,Feign 客户端不支持 @DateTimeFormat 注释. @DateTimeFormat 注释由 Spring MVC 使用,而不是由 Spring Cloud OpenFeign 使用。

修复方法很少,例如force ISO dates for all Feign callsregister additional Spring converters .它将需要取决于您的用例的自定义代码,例如您可能想用 ZonedDateTime 替换旧的 Date

关于java - 无法将类型 'java.lang.String' 的值转换为所需类型 'java.util.Date',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55477484/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com