我有一个使用com.fasterxml.jackson.databind.JsonNode类型的有效负载生成卡夫卡消息的服务。当我使用这条消息时,我希望它被序列化为一个POJO,但是我得到了以下消息:
IllegalArgumentException:为标头“kafka_receivedMessageKey”指定的不正确类型。预期的类com.fasterxml.jackson.databind.node.ObjectNode,但实际类型是类com.example.Person
如何配置生产者或使用者部件,使其按我的意愿工作?
我认为这是我可以采取的方法:
如果__Key_TypeId__是JsonNode的子类,那么卡夫卡消费者应该忽略它
或
如果卡夫卡是__Key_TypeId__的子类,那么它应该生成一条没有JsonNode头的消息。
但是,如何实现这些方法中的任何一种?还是还有别的选择?
发布于 2019-07-08 20:20:28
见参考手册。
您可以在生产者上将JsonSerializer.ADD_TYPE_INFO_HEADERS设置为false,在使用者上将JsonDeserializer.USE_TYPE_INFO_HEADERS设置为false。
https://stackoverflow.com/questions/56940963
复制相似问题