Java LocalDateTime在向JAX-RS控制器发出的PUT请求中被设置为Null

Java LocalDateTime在向JAX-RS控制器发出的PUT请求中被设置为Null,java,spring-boot,jax-rs,java-time,Java,Spring Boot,Jax Rs,Java Time,我试图在方法的请求参数中传递LocalDateTime,但它总是记录为null。请帮我找出我做错了什么: @Path("/book/workOrderId/{workOrderId}") @PUT public Response bookWorkOrder(@Context HttpHeaders headers, @PathParam("countryCode") String countryCode, @PathPara

我试图在方法的请求参数中传递LocalDateTime,但它总是记录为null。请帮我找出我做错了什么:

@Path("/book/workOrderId/{workOrderId}")
@PUT
    public Response bookWorkOrder(@Context HttpHeaders headers, @PathParam("countryCode") String countryCode,
            @PathParam("workOrderId") int workOrderId,
            @QueryParam("reasonId") int reasonId,
            @RequestParam(value = "dateTime") @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")  LocalDateTime dateTime

    ) throws CDException {
    
        logger.debug("dateTime outside if::" + dateTime);
        return Response.ok(true).build();
}
输出:

22:32:27.659 [http-nio-8300-exec-2] DEBUG c.c.t.i.e.v.impl.WorkorderController - dateTime outside if::null
这对我很有用:

@PUT
    public Response bookWorkOrder(@Context HttpHeaders headers, @PathParam("countryCode") String countryCode,
            @PathParam("workOrderId") int workOrderId, @QueryParam("bookingTime") String bookingTime,
            @QueryParam("reasonId") int reasonId) throws CDException {
        LocalDateTime localDateTime = LocalDateTime.parse(bookingTime, DateTimeFormatter.ISO_DATE_TIME);
        logger.debug("bookingTime:: {}", bookingTime);
return Response.ok(true).build();

}

您使用的是JAX-RS而不是Spring MVC,因此
@RequestParam
@DateTimeFormat
都可以像Spring MVC而不是JAX-RS那样工作。那么我们如何在这里传递localDateTime呢@M.DeinumDepends你是如何提交的?如果它是参数,那么它是ULR(
@PathParam
)的一部分吗?使用
@QueryParam
,如果它是表单的一部分,那么使用
@FormParam
。因此,这取决于您提交数据的方式。我想将其作为
@QueryParam
传递,但如何在其中传递本地日期时间表达式。端点中的dateTime=2020-10-08T14:00:00使用
@QueryParam(“bookingTime”)LocalDateTime bookingTime时无效。DeinumNo idea。不确定JAX-RS是如何支持
javax.time
东西的(因此更改了标题并添加了标记,以便可能知道的人能够回答)。