Spring Kafka无法解析className

zpgglvta  于 2023-04-19  发布在  Apache
关注(0)|答案(1)|浏览(120)

我正在尝试使用Kafka将数据对象从一个spring服务发送到另一个服务。
问题是Kafka无法解析className,因此无法将消费者的类Map到生产者的类。以下是错误消息:
Caused by: org.springframework.messaging.converter.MessageConversionException: failed to resolve class name. Caused by: java.lang.ClassNotFoundException
我尝试使用以下属性Map类:
对于生产者:spring.kafka.producer.properties.spring.json.type.mapping=event:com.ankit.orderservice.event.OrderPlacedEvent
对于消费者:spring.kafka.consumer.properties.spring.json.type.mapping: event:com.ankit.OrderPlacedEvent

guz6ccqo

guz6ccqo1#

您在spring.kafka.consumer.properties.spring.json.type.mapping: event:com.ankit.OrderPlacedEvent中有一个错别字,应该是spring.kafka.consumer.properties.spring.json.type.mapping= event:com.ankit.OrderPlacedEvent
大局观:当生产者创建新消息时,__TypeId__头包含有关java类的信息。消费者验证您是否尝试deserliaze到同一个类,由于不同的包名称而失败。解决此问题的选项:
1.将消息类移动到包含在两个项目(生产者、消费者)中的模块
1.Map类型(这是您尝试的):https://docs.spring.io/spring-kafka/docs/current/reference/html/#serdes-mapping-types

相关问题