Apache kafka 使用avro模式中的java.util.List读取来自Kafka的消息
我正在尝试使用具有以下属性的消费者来阅读来自卡夫卡的消息Apache kafka 使用avro模式中的java.util.List读取来自Kafka的消息,apache-kafka,avro,confluent-platform,confluent-schema-registry,Apache Kafka,Avro,Confluent Platform,Confluent Schema Registry,我正在尝试使用具有以下属性的消费者来阅读来自卡夫卡的消息 value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer key.deserializer=org.apache.kafka.common.serialization.StringDeserializer specific.avro.reader=true 模式是 { "type" : "array", "items" : {
value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
specific.avro.reader=true
模式是
{
"type" : "array",
"items" : {
"type" : "record",
"name" : "MyDto",
"namespace" : "test.dto",
"fields" : [ {
"default" : null,
"name" : "version",
"type" : ["null","string"]
}, {
"default" : null,
"name" : "testName",
"type" : ["null","string"]
}, {
"name" : "keys",
"type" : {"type": "array", "items": "string"},
"java-class" : "java.util.List"
}]
},
"java-class" : "java.util.List"
}
该对象已使用此架构成功写入Kafka。但是在反序列化时,我得到了异常java.lang.NoSuchMethodException:java.util.List。(
是否可以使用java.util.List类?我使用的confluent 3.1.2是一个接口,它没有构造函数或具体实现。您的生产者可能正在使用ArrayList,阅读器模式和使用者也应该使用ArrayList 确保使用
“java类”:“java.util.ArrayList”