2

我正在尝试在我的项目中包含 Kafka 模块。

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

  • kafka-clients-0.8.2.0.jar
  • kafka_2.10-0.8.2.0.jar
  • scala-library-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().

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

4

1 回答 1

0

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

于 2015-06-16T01:50:51.420 回答