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

如何从FegnClientendpoint返回LocalDateTime?

孙和安
2023-03-14

这是我的FegnClient:

@FeignClient(name="${mongo.service.id}", url="${mongo.service.url}", configuration = FeignConfig.class)
public interface MongoAtmResetDataInterface {
    String requestMappingPrefix = "/api/atmResetData";

    @GetMapping(path = requestMappingPrefix + "/brinksDateTime")
    LocalDateTime fetchLastBrinksDateTime();
}

这是对外部endpoint的调用:

private String fetchLastBrinksTime() {
    return mongoAtmResetDataInterface.fetchLastBrinksDateTime()
       .toLocalDate()
       .format(DateTimeFormatter.ofPattern(DATE_FORMAT));
}

我得到以下例外:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 
Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): 
no String-argument constructor/factory method to deserialize from String value ('10-12-2019T14:01:39')

我的SpringMvcConfig类中确实有一个LocalDateTime转换器

共有1个答案

东门理
2023-03-14

使用反序列化的Spring MVC将生成一个数组。但是用ArrayList调用object方法。因此不能反序列化LocalDate。

因此,您可以在pom中添加此设置。xml

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>

并将其添加到反序列化模型中。(com.fasterxml.jackson.datatype.jsr310. JavaTimeModule,com.fasterxml.jackson.datatype.jsr310. JSR310Module)

@Bean
public ObjectMapper serializingObjectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    objectMapper.registerModule(new JavaTimeModule());
    return objectMapper;
}

希望能帮助你。

 类似资料:
  • 我正在尝试实现一个通用的REST客户端,如下所示。我有自己的模型将HTTP响应表示为response T。这里T是服务调用的返回类型,它可能只是T或Ts列表。下面的代码不编译,我需要帮助。 最终调用下面的方法,

  • 我有一个将arraylist传递给另一个意图的代码,如何将更新后的arraylist的值返回给主意图? 主意图代码中的数组列表: 我必须再次将数组列表传递给主要意图吗?像这样:

  • 问题内容: 在Java中,我有: 我希望本机方法“ nativeGetStatus”返回此枚举值。 JNI返回整数并与java中的enum的值进行比较是一个选项,但是想知道是否可以通过jobject返回值并将其直接分配给state吗?如果是,怎么办? 问题答案: 当然可以。枚举值是Enum类的公共静态字段,因此您可以使用此官方手册编写代码。只需从JNI获取字段并将其作为jobject返回即可。

  • 问题内容: 基本上,我想要Android中的EditText,可以在其中输入一个整数值。也许有比EditText更合适的对象了吗? 问题答案: 现在,使用。使用强制它是数字。将结果字符串转换为整数(例如)。 将来,您可能会考虑使用可用的小部件(计划在Honeycomb中使用)。

  • 问题内容: 我正在尝试从call()返回2D数组,但遇到了一些问题。到目前为止,我的代码是: 这段代码会编译,这不会返回我的数组。我确定我可能使用了错误的语法,但是找不到任何好的示例。 编辑:改变了一点 问题答案: 添加到Joseph Ottinger的答案中,要传递要在Callable的call()方法中使用的值,可以使用闭包:

  • 问题内容: 我需要兑现承诺,以便可以通过封闭函数将其返回。我知道,由于正常的JavaScript范围,我可能无法按照编码的方式进行操作。有什么办法可以做到吗? 位于#1 的 console.log 会生成正确的数据。 console.log #2总是产生’a’; 任何指针将不胜感激。 问题答案: 许诺背后的基本原则之一是它是异步处理的。这意味着您无法创建承诺,然后立即在代码中同步使用其结果(例如,