Quarkus项目中Kafka消费LocalDateTime反序列化失败求助
Quarkus Kafka消费时LocalDateTime反序列化失败问题
在基于JDK 17的Quarkus项目中,消费Kafka消息并反序列化对象时遭遇LocalDateTime反序列化失败问题。此前序列化消息时,通过ObjectMapper().registerModule(new JavaTimeModule());解决过同类问题,但现在处理同一对象的消费反序列化时完全无效。
已尝试以下4种解决方案,均以失败告终:
- 使用Jackson注册JavaTimeModule后反序列化
new ObjectMapper().registerModule(new JavaTimeModule()); mapper.readValue(data, BudgetToMarinaOrderDTO.class);
- 注册JavaTimeModule并关闭时间戳序列化特性
new ObjectMapper().registerModule(new JavaTimeModule()).disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); mapper.readValue(data, BudgetToMarinaOrderDTO.class);
- 使用Gson默认实例反序列化
Gson gson = new GsonBuilder().create(); gson.fromJson(data, BudgetToMarinaOrderDTO.class);
- 为Gson注册自定义LocalDateTime反序列化器
gsonBuilder.registerTypeAdapter(LocalDateTime.class, new CustomLocalDateTimeDeserializer()); Gson gson = gsonBuilder.setPrettyPrinting().create(); gson.fromJson(data, BudgetToMarinaOrderDTO.class);
项目相关依赖如下:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-reactive-messaging-kafka</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10</version> </dependency>
所有方案的核心报错均为LocalDateTime反序列化失败,其中一条典型错误信息如下:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.time.LocalDateTime` from Object value (
内容的提问来源于stack exchange,提问作者rafaelpadu
相关产品推荐
相关产品推荐

