私はカフェのトピックを作成するためにJava APIを作成しようとしています。私はKafkaバージョン0.11.0.0を持っています。私はスタックのオーバーフローで検索し、同じ方法でtryied。しかし、トピックが存在するかどうかにかかわらず、常に私に例外を与えています。トピックを作成するjava - kafkaバージョン> 0.10.0.0
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/kafka/common/errors/TopicExistsException
at kafka.admin.AdminUtils.createTopic(AdminUtils.scala)
at kafkaStream.Processor.CreateTopic.main(CreateTopic.java:65)
Caused by: java.lang.ClassNotFoundException:
org.apache.kafka.common.errors.TopicExistsException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
私は次のコードを試してみました:
String topicName = "t5";
String zookeeperHosts = "XXXX:2181,XXXX:2181";
int sessionTimeOutInMs = 15 * 1000;
int connectionTimeOutInMs = 50 * 1000;
Properties topicConfig = new Properties();
zkClient = new ZkClient("XXXX:2181,XXXX:2181",
sessionTimeOutInMs,
connectionTimeOutInMs,
ZKStringSerializer$.MODULE$);
zkUtils = new ZkUtils(zkClient, new
ZkConnection(zookeeperHosts), false);
ZkUtils.apply(
"XXXX:2181,XXXX:2181",
sessionTimeOutInMs,
connectionTimeOutInMs,
false);
// AdminUtils.createTopic(zkUtils, topicName, numPartitions, 1,
topicConfig, RackAwareMode.Enforced$.MODULE$);
AdminUtils.createTopic(zkUtils, topicName, 2, 1, new
Properties(), RackAwareMode.Enforced$.MODULE$);
Mavenの依存関係 - あなたは新しい0.11.0バージョンを使用しているので、私は(新しい管理クライアントAPIを使用することをお勧め>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.11.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.11.0.0</version>
</dependency>
classpathに依存するapi(特定のバージョンのkafka-clients)jarを追加しましたか? –
はい私は – Megha