Kafka简单的消费者 - 在迭代器上获得错误

时间:2014-09-11 00:29:29

标签: java apache-kafka

我是Java新手并使用https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example上的博客,试图开发一个嵌入式适配器,用于接收来自Kafka的流。 这是代码的一部分,它假定使用者是单线程的。

public void run() {
    Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
    topicCountMap.put(topic, new Integer(getNumThreads()));
    Map<String, List<KafkaStream<String, String>>> consumerMap = consumer.createMessageStreams(topicCountMap);
    List<KafkaStream<String, String>> streams = consumerMap.get(topic);

    executor = Executors.newFixedThreadPool(1); 

    final KafkaStream<String, String> stream = streams.get(0);
    ConsumerIterator<String, String> it = stream.iterator();
    while (it.hasNext()) {
           // fill the tuple and output the tuple
           fillAndOutputTuple();
           }

我在Eclipse IDE上的it.hasNext()上收到此错误: 类文件Iterator包含签名&#39;(I)Lscala / collection / Iterator.GroupedIterator;&#39;第57位表现不佳

(奇怪的是,位置57不存在就像它给出错误一样。)

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

将Java代码与Scala编写的库(如Kafka)混合时,似乎会发生此错误。你可以验证scala-library-x.yz.jar(x.yz是你正在使用的Kafka构建所需的Scala版本)是否在eclipse项目的Build Path中?请参阅https://groups.google.com/forum/#!topic/liftweb/f0IAaqoWyu4