如何使用Eclipse下的自定义Kafka生成器修复NoClassDefFoundError?

时间:2015-06-11 00:07:49

标签: java eclipse apache-kafka kafka-consumer-api

我想在我的项目中包含Kafka模块。

我在eclipse中添加了以下jar作为外部jar库,并且还更新了build.xml以包含对jar的引用:

  • kafka-clients-0.8.2.0.jar
  • kafka_2.10-0.8.2.0.jar
  • 阶库-2.10.4.jar

我写了一个示例Producer类

public class KafkaWriteRequestProducer extends Thread
{
private final String topic;
private final KafkaProducer<Integer, byte[]> producer;
private final WriteRequest writeRequest;

public KafkaWriteRequestProducer(String topic, WriteRequest writeRequest)
{
    this.topic = topic;
    this.writeRequest = writeRequest;

    //Initialize the config for Kafka Producer
    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("client.id",  "KafkaProducer");
    props.put("key.serialzer",  "org.apache.kafka.common.serialization.IntegerSerializer");
    props.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");

    producer = new KafkaProducer<Integer, byte[]>(props);       
}
}

在开始这个项目之前,我确保Zookeeper和Kafka经纪人正在运行。但是,我在尝试实例化NoClassDefFoundError()时看到new KafkaProducer()

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

为了完成,我看到错误的原因是因为我没有在类路径中指定的jar。有一次,我将罐子添加到类路径中,它运行得非常好。