我目前正在设置一个 tomcat8 服务器,并想在其上编写一个 servlet,它处理附加了传感器值的 POST 请求。
我希望通过在 servlet 中设置的生产者将此传感器数据发送到 Apache Kafka。我想用“How to send a message via Kafka.Producer from a java servlet to Kafka”中的代码设置一个 test-http-servlet 来学习编写我自己的代码。
但是在编译时:javac -cp/home/tobias/apache-tomcat-8.5.8/lib/servlet-api.jar HTTPServlet.java
,我收到以下消息:
HTTPServlet.java:19: 错误:包 kafka.producer 不存在
导入kafka.producer.ProducerConfig;
^
HTTPServlet.java:20: 错误:包 kafka.javaapi.producer 不存在
导入 kafka.javaapi.producer.ProducerData;
^
我确实已经将包含“kafka.producer.ProducerConfig”类的“kafka_2.11-0.10.1.0.jar”放入“WEB-INF/lib”文件夹中,但它似乎不起作用.
这个“kafka_2.11-0.10.1.0.jar”位于“kafka_2.11-0.10.1.0”的“libs”文件夹中,可以从kafka-website下载。
所以我想问一下,我将如何让它工作,如果有人知道,2. 丢失的文件在最新版本的 kafka 中的位置。
最佳答案
我通过将额外的 api.jar 文件添加到我的编译命令解决了这个问题(感谢 Strelok):javac -cp/home/tobias/apache-tomcat-8.5 .8/lib/servlet-api.jar:/home/tobias
/apache-tomcat-8.5.8/webapps/HTTPServlet/WEB-INF/lib/kafka_2.11-0.10.1.0.jar HTTPServlet.java
ProducerData 的导入:import kafka.javaapi.producer.ProducerData;
不再可行,因为 ProducerData.class 已从 kafka 的 0.6 到 0.7 版本中删除。我建议使用 ProducerRecord.class(用于我的测试示例)。
关于java - 如何将包从 jar 文件导入到在 tomcat 8 上运行的 servlet 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40885690/