Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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
使用Avro序列化程序初始化Kafka生产者时出错:java.lang.NoClassDefFoundError_Java_Apache Kafka_Avro_Confluent Schema Registry - Fatal编程技术网

使用Avro序列化程序初始化Kafka生产者时出错:java.lang.NoClassDefFoundError

使用Avro序列化程序初始化Kafka生产者时出错:java.lang.NoClassDefFoundError,java,apache-kafka,avro,confluent-schema-registry,Java,Apache Kafka,Avro,Confluent Schema Registry,我在获取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-

我在获取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\confluent\kafka avro serializer\5.2.2
。然后,我将以下内容添加到依赖项中的项目POM文件中:

<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-avro-serializer</artifactId>
    <version>5.2.2</version>
</dependency>
但是运行这个:

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);

我发现了一个类似的问题。但我没有使用卡夫卡连接。另外

您还必须为公共配置添加一个依赖项

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

合流的
公共配置
5.2.2

该类在此JAR中可用。

您必须为公共配置再添加一个依赖项

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

合流的
公共配置
5.2.2

该类在这个JAR中可用。

我通过从confluent安装额外的JAR文件解决了我的问题:common config、common utils、common utils和kafka schema registry client

e、 g

通过重命名.jar->.jar.zip填充属性,打开存档,导航到META-INF/maven/../pom.Properties


然后以类似的方式更新项目POM。

我通过从confluent安装额外的jar文件解决了我的问题:common config、common utils、common utils和kafka schema registry client

e、 g

通过重命名.jar->.jar.zip填充属性,打开存档,导航到META-INF/maven/../pom.Properties


然后以类似的方式更新project POM。

谢谢。我还需要几个罐子。在我写这篇文章时回答了我自己的问题。这应该是一个可传递的依赖项。是的,但我认为POM没有它?谢谢。我还需要几个罐子。在我写这篇文章时回答了我自己的问题。这应该是一个可传递的依赖项。是的,但我认为POM没有它?
<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>common-config</artifactId>
    <version>5.2.2</version>
</dependency>
$ mvn install:install-file -DgroupId=io.confluent -DartifactId=common-utils -Dversion=5.2.2 -Dpackaging=jar -Dfile=C:\Users\myuser\Documents\Jars\common-utils-5.2.2.jar