如何在 Eclipse 下使用自定义 Kafka 生产者修复 NoClassDefFoundError?
How to fix NoClassDefFoundError with custom Kafka producer under Eclipse?
我正在尝试在我的项目中包含 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 class
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 代理是 运行。但是,我在尝试实例化 new KafkaProducer()
时看到 NoClassDefFoundError()
。
我是不是遗漏了什么明显的东西?
为完成起见,我看到错误的原因是因为我没有在类路径中指定 jars。有一次,我将 jars 添加到类路径中,效果非常好。
我正在尝试在我的项目中包含 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 class
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 代理是 运行。但是,我在尝试实例化 new KafkaProducer()
时看到 NoClassDefFoundError()
。
我是不是遗漏了什么明显的东西?
为完成起见,我看到错误的原因是因为我没有在类路径中指定 jars。有一次,我将 jars 添加到类路径中,效果非常好。