使用Avro序列化程序初始化Kafka生产者时出错:java.lang.NoClassDefFoundError
我在获取KafkaProducer实例化以接受值序列化程序配置属性的avro序列化程序时遇到问题。我安装了使用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-
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