Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka抛出java.lang.NoSuchMethodException_Apache Kafka_Kafka Producer Api - Fatal编程技术网

Apache kafka Kafka抛出java.lang.NoSuchMethodException

Apache kafka Kafka抛出java.lang.NoSuchMethodException,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,我已经编写了自己的serialiser,将java对象发布到主题。我将serializer.class属性设置为自定义序列化程序。 当运行producer时,我得到以下异常。有人能帮我吗 例外情况 Exception in thread "main" java.lang.NoSuchMethodException: com.xxxx.CustomFileSerializer.<init>(kafka.utils.VerifiableProperties) at java.la

我已经编写了自己的serialiser,将java对象发布到主题。我将serializer.class属性设置为自定义序列化程序。 当运行producer时,我得到以下异常。有人能帮我吗

例外情况

Exception in thread "main" java.lang.NoSuchMethodException: com.xxxx.CustomFileSerializer.<init>(kafka.utils.VerifiableProperties)
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.getConstructor(Class.java:1825)
    at kafka.utils.CoreUtils$.createObject(CoreUtils.scala:222)
    at kafka.producer.Producer.<init>(Producer.scala:62)
    at kafka.javaapi.producer.Producer.<init>(Producer.scala:26)
    at com.xx.KafkaProducer.generateMessgaes(KafkaProducer.java:50)
    at com.xx.KafkaProducer.main(KafkaProducer.java:60)
线程“main”java.lang.NoSuchMethodException中的异常:com.xxxx.CustomFileSerializer.(kafka.utils.VerifiableProperties) 位于java.lang.Class.getConstructor0(Class.java:3082) 位于java.lang.Class.getConstructor(Class.java:1825) 位于kafka.utils.CoreUtils$.createObject(CoreUtils.scala:222) 在卡夫卡。制片人。制片人。(制片人。斯卡拉:62) 在kafka.javaapi.producer.producer.(producer.scala:26) com.xx.KafkaProducer.generateMessgaes(KafkaProducer.java:50) 位于com.xx.KafkaProducer.main(KafkaProducer.java:60) 我的制作人

props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("serializer.class", "com.xxxx.CustomFileSerializer");


kafka.javaapi.producer.Producer<String, FileObj> producer = new kafka.javaapi.producer.Producer<String, FileObj>(
                producerConfig);
        String key = "key1";
        KeyedMessage<String, RawFile>   record = new KeyedMessage<String, RawFile>(topic, key, file);
        producer.send(record);
        producer.close();
props.put(“key.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
put(“value.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
put(“serializer.class”、“com.xxxx.CustomFileSerializer”);
kafka.javaapi.producer.producer producer=新的kafka.javaapi.producer.producer(
生产配置);
字符串key=“key1”;
KeyedMessage记录=新的KeyedMessage(主题、键、文件);
制作人。发送(记录);
producer.close();

看起来您正在使用旧的生产者和新的序列化程序。旧序列化程序在其构造函数中采用了可验证属性值。尝试使用新的生成器或使用解码器的实现作为序列化程序


还请注意,序列化程序属性名称随着新的生产者而更改,反序列化程序实现的接口(序列化程序和反序列化程序而不是旧的解码器)也一样。

看起来您正在将旧生产者与新的序列化程序一起使用。旧序列化程序在其构造函数中采用了可验证属性值。尝试使用新的生成器或使用解码器的实现作为序列化程序


还请注意,序列化程序属性名称随着新的生产者而更改,反序列化程序实现的接口(序列化程序和反序列化程序,而不是旧的解码器)也是如此。

我像添加具有VerifiableProperties VerifiableProperties参数的构造函数一样进行了分类。我可以知道我必须使用的新API是什么吗?我像添加一个带有可验证属性的构造函数一样进行了分类。我可以知道我必须使用的新API是什么吗?