Kafka类型映射问题:应用运行时消费者类定义找不到报错
问题描述
已尝试所有相关方案仍未解决问题,此前参考过以下方案:
- 《如何使用Spring Boot配置Kafka类型映射?Maven构建成功但存在错误》
- 《如何在Kafka中使用属性文件映射类型》
生产者端配置
YAML配置
kafka: producer: bootstrap-servers: localhost:9092 key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
Properties配置
spring.kafka.producer.properties.spring.json.type.mapping=mail:com.upcoming.vice.model.ItemMail
消费者端配置
YAML配置
kafka: consumer: bootstrap-servers: localhost:9092 group-id: mail-notifications auto-offset-reset: earliest enable-auto-commit: false key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
Properties配置
spring.kafka.consumer.properties.spring.json.type.mapping=mail:com.schedule.notify.model.ItemMail spring.kafka.consumer.properties.spring.json.trusted.packages=*
实体类定义
public class ItemMail implements Serializable { public String to; public String subject; public String body; }
消费者监听配置类
@Configuration @KafkaListener(topics = "itemSaved") public class KafkaConsumerConfig { @KafkaHandler public void handleItemMail(ItemMail mail) { System.out.println("Received mail: " + mail); } }
报错信息
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JavaType at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] ... 42 common frames omitted
内容的提问来源于stack exchange,提问作者Soumyakanti Giri
相关产品推荐
相关产品推荐

