Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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/4/maven/6.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
Java 无法在卡夫卡制作者中实例化GenericRecord,以便将avro流式传输到主题_Java_Maven_Apache Kafka_Avro - Fatal编程技术网

Java 无法在卡夫卡制作者中实例化GenericRecord,以便将avro流式传输到主题

Java 无法在卡夫卡制作者中实例化GenericRecord,以便将avro流式传输到主题,java,maven,apache-kafka,avro,Java,Maven,Apache Kafka,Avro,我试图创建一个Java制作人,将Avro流式传输到卡夫卡主题。 我已经尝试重现了中介绍的示例 但是找不到GenericRecord类(如下所示) import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; Schema.Parser parser = new Schema.Parser(); Schema sche

我试图创建一个Java制作人,将Avro流式传输到卡夫卡主题。 我已经尝试重现了中介绍的示例

但是找不到GenericRecord类(如下所示)

import org.apache.avro.Schema;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;

Schema.Parser parser = new Schema.Parser();
Schema schema = parser.parse(userSchema);
GenericRecord avroRecord = new GenericData.Record(schema);
下面是报告的错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/generic/GenericRecord
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.avro.generic.GenericRecord
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more
这是我的pom.xml文件

这会产生以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/KafkaProducer
    at com.giorgos.currencies.TestFX.main(TestFX.java:103)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.producer.KafkaProducer
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
这是我运行程序的方式:

java -cp target/giorgos-fx_currencies-1.0-SNAPSHOT.jar com.giorgos.currencies.TestFX command-line-argument

因为您使用的是shade插件,所以这些类是这个文件的一部分

target/uber-giorgos-fx_currencies-1.0-SNAPSHOT.jar 

使用它来运行代码

Confluent 4.0的卡夫卡版本是1.0.0,而Avro版本是1.8.2在任何情况下,如果你想使用Avro类,你应该运行uber jarloaded@cricket_007我已经将卡夫卡和阿夫罗的版本分别设置为1.0.0和1.8.2,但运气不好。见更新的问题。当注释掉GenericRecord时,KafkaProducer也会出现同样的行为。不确定为什么不克隆/复制一些示例代码,您可能希望在与Kafka/Confluent版本混淆之前验证代理版本
java -cp target/giorgos-fx_currencies-1.0-SNAPSHOT.jar com.giorgos.currencies.TestFX command-line-argument
target/uber-giorgos-fx_currencies-1.0-SNAPSHOT.jar