0

我正在尝试使用具有以下属性的消费者从 Kafka 读取消息

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.<init>()

是否可以使用 java.util.List 类?我正在使用融合 3.1.2

4

1 回答 1

0

AList是一个接口,它没有构造函数或具体实现。您的生产者可能正在使用 ArrayList,阅读器模式和消费者也应如此

确保架构定义为"java-class" : "java.util.ArrayList"

于 2019-01-09T20:28:51.243 回答