问题描述
我刚刚开始在一个将在 WebSphere 8.5 上运行的 Java 1.7 应用程序中使用 Kafka。该项目构建得很好。我将它部署到 WebSphere 并运行它并收到此错误:
Error 500: javax.servlet.servletexception: java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/StringSerializer
这是一个 Java Maven 项目,在我的 pom.xml 中有这个:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.8.0</version>
</dependency>
Properties properties = new Properties();
properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONfig,"chdhadoopd05:6667");
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONfig,StringSerializer.class.getName());
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONfig,StringSerializer.class.getName());
KafkaProducer<String,String> kafkaProducer = new KafkaProducer<String,String>(properties);
ProducerRecord<String,String> record=new ProducerRecord<String,String>("my_test","Hi Kafka");
kafkaProducer.send(record);
kafkaProducer.flush();
kafkaProducer.close();
我已经阅读了数十篇帖子和问题,每个帖子和问题都有所不同,到目前为止,我没有看到任何解决方案。我上面的代码看起来正确吗?我错过了什么吗?我需要对服务器做些什么吗?
解决方法
问题是在一页的文档深处发现的……Apache Kofka 2.x 删除了对 Java 7 的支持。我降级到 v. 1.x,错误消失了。