2017-08-25 11 views
0

私はカフェのトピックを作成するために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> 
+0

classpathに依存するapi(特定のバージョンのkafka-clients)jarを追加しましたか? –

+0

はい私は – Megha

答えて

1

をいくつかのドキュメントのリンク:https://kafka.apache.org/0110/javadoc/index.html?org/apache/kafka/clients/admin/AdminClient.html)。

このような操作を行うためにZookeeperを使用することは、将来、新しいAdmin Client APIの使用を推し進めて廃止される予定です。

+0

を追加しましたあなたの提案に感謝、私はAdminClientで試してみました。私はできません。任意の例を共有していただけますか – Megha

+0

ここでは非常に簡単な例があります(kafka-clients依存関係が必要な場合は、関連するpom.xmlを参照してください):https://github.com/ppatierno/kafka-playground/blob/マスター/ src/main/java/org/apache/kafka/playground/CreateTopic.java – ppatierno

+0

ありがとう@ppatierno、私は間違ったパッケージをインポートする問題becozに直面していた。ありがとうございます – Megha

関連する問題