gpt4 book ai didi

java - 使用 Avro Serializer 初始化 Kafka Producer 时出错 : java. lang.NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-02 01:15:01 50 4
gpt4 key购买 nike

我无法让 KafkaProducer 实例化接受值序列化器配置属性的 avro 序列化器。我使用

安装了 kafka-avro-serializer-5.2.2.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-avro-serializer \
-Dversion=5.2.2 -Dpackaging=jar -Dfile=C:/Users/myuser/Downloads/kafka-avro-serializer-5.2.2.jar

jar 和相关文件已添加到 ~\.m2\repository\io\confluence\kafka-avro-serializer\5.2.2 中。然后,我将以下内容添加到项目 POM 文件的依赖项中:

<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<version>5.2.2</version>
</dependency>

然后我的客户端中的以下导入工作正常;代码编译

import io.confluent.kafka.serializers.KafkaAvroSerializer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;

但是运行这个:

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class.getName());

final Producer<String, Object> producer = new KafkaProducer<>(props);

结果错误:

Exception in thread "main" java.lang.NoClassDefFoundError: io/confluent/common/config/ConfigException

我发现跟踪了类似的问题here 。但我没有使用 Kafka Connect。还有

最佳答案

您必须为通用配置再添加一个依赖项。

<dependency>
<groupId>io.confluent</groupId>
<artifactId>common-config</artifactId>
<version>5.2.2</version>
</dependency>

该类在此 JAR 中可用。

关于java - 使用 Avro Serializer 初始化 Kafka Producer 时出错 : java. lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817059/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com