当前位置: 首页 > 知识库问答 >
问题:

未能转换“java”类型的值。lang.String“to required type”java。util。日期'

孙莫希
2023-03-14

我有两个微服务是通过外国沟通。一个微服务公开另一个正在调用的方法。该方法将日期作为参数。

这是方法的代码:

@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;

}

==

另一个微服务使用这个外来类来调用这个方法:

@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);

==

我的代码正在启动此异常:

未能转换“java”类型的值。lang.String“to required type”java。util。日期';嵌套异常为org。springframework。果心转换ConversionFailedException:无法将值“2019-03-29 08:38:08.0”的类型[java.lang.String]转换为类型[@org.springframework.web.bind.annotation.PathVariable@org.springframework.format.annotation.DateTimeFormat java.util.Date];嵌套的异常是java。lang.IllegalArgumentException:无效格式:“2019-03-29 08:38:08.0”在“08:38:08.0”处格式不正确

共有1个答案

冯枫涟
2023-03-14

模拟客户端不支持@DateTimeFormat注释,因为每个问题模拟客户端没有正确序列化java.time.LocalDate的#104。@DateTimeFormat注释由Spring MVC使用,而不是由Spring Cloud OpenFign使用。

有几种方法可以修复,例如强制所有飞格调用的ISO日期或注册其他Spring转换器。它将需要取决于您的用例的自定义代码,例如您可能希望将旧的Date替换为ZonedDateTime

 类似资料:
  • 我想用spring boot api访问数据库中的一个函数,并获取它返回的值。当我们在swagger中输入参数时,日期部分会出现错误。 2021 4月1日,我在oracle中调用函数的日期参数时,没有错误,但我无法从spring开始以这种方式发送。 Oracle功能代码: ooeController: 其他服务: oeedao: 昂首阔步: 错误: 如何解决这个问题?

  • 任务控制器 创造jsp 在控制器中,我用相同的错误(以及不同的格式,如“yyyy/MM/dd”)编写了以下内容 我还尝试在类中添加注释(以及使用不同的格式),但出现了相同的错误

  • 我正在尝试使用Spring MVC、Java和MySql在我的网络应用程序中实现完整的日历插件。当我尝试在我的jsp中使用“输入类型=日期”添加日期时,我一直收到这个错误: 在我的控制器类中,我使用SimpleDateFormat格式化日期: 最后在我的Jsp中: 这是DAO实现: 在我的实体类中,我将变量保存为日期 我认为问题在于日期的解析,但我不确定!对此问题的任何解释都将不胜感激。

  • 我将客户数据对象存储为共享首选项(Android)中的JSON字符串,并尝试检索转换回客户对象的字符串并用于验证。从对象到JSON字符串的转换非常好,并且存储在首选项中(作为键值(字符串)对)。 当我尝试使用-我总是得到相同的错误值...类型java.lang.字符串不能转换为JSONObject。 我希望一双不同的眼睛能捕捉到我不能捕捉到的东西。带有数据的错误消息(屏蔽): Value 类型为j

  • 在这里,我试图将数据发送到我的web服务器,并使用解析json并将数据插入mysql数据库。我得到一个错误,表示值stdClass为

  • 你好,我正在用JavaSpring Boot做一个“CRUD网络应用程序”,我正试图将我的“CRUD网络应用程序”按钮功能从一个新页面更改为一个模态,我遇到了问题。 首先,当我单击“编辑”按钮时,我的表单没有填充它从数据库获得的数据,第二,当我单击“保存”时,它会向我显示此消息。 无法转换“java”类型的值。lang.String'转换为所需类型“long”;嵌套的异常是java。lang.Nu