我有一个服务正在生成类型为com.fasterxml.jackson.databind.JsonNode
的有效负载的Kafka消息。使用此消息时,我希望将其序列化为POJO,但是我收到以下消息:
IllegalArgumentException:为标头指定的类型不正确 'kafka_receivedMessageKey'。预期的[class com.example.Person]但 实际类型是[类com.fasterxml.jackson.databind.node.ObjectNode]
如何配置生产者或消费者零件以使其按预期工作?
我认为这些是我可以采取的方法:
如果Kafka Consumer是__Key_TypeId__
的子类,则应该忽略JsonNode
OR
如果Kafka Producer是__Key_TypeId__
的子类,则它应该生成没有JsonNode
头的消息
但是我该如何实现这两种方法呢?还是还有其他选择?
答案 0 :(得分:2)
请参见reference manual。
您可以在生产者上将JsonSerializer.ADD_TYPE_INFO_HEADERS
设置为false
,或在消费者上将JsonDeserializer.USE_TYPE_INFO_HEADERS
设置为false。