2017-10-31 10 views
0

サーブレットを使用してKafkaProducerを接続し、eclipseでプロジェクトをセットアップしようとしています。私はKafkaProducerを実行したときしかし、私は例外を取得:サーブレットを使用してKafkaProducerを接続します

org.apache.catalina.core.StandardWrapperValveはSEVERE呼び出す: のServlet.service()パスを持つコンテキスト でサーブレット[simple_kafka.SimpleProducer] [/ kafka_web]のために例外をスローした根本原因にjava.lang.ClassNotFoundExceptionで[サーブレットの実行が 例外をスロー]: org.apache.catalina.loader.WebappClassLoaderBase.loadClassで org.apache.kafka.clients.producer.KafkaProducer(WebappClassLoaderBase.java:1291 ) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) at simple_kafka。 SimpleProducer.doPost(SimpleProducer.java:56)を に設定します。 のjavax.servlet.http.HttpServlet.service(HttpServlet.java:661) org org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.apache.tomcat.websocket.serverで でapache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 。 : org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.javaでWsFilter.doFilter(WsFilter.java:52) でorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 166) でorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) でorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) org.apache.catalinaで org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValveで.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) でorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) .java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.Standard EngineValve.invoke(StandardEngineValve.java:87) でorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) でorg.apache.coyote.http11.Http11Processor.service(Http11Processor.java。 で803) org.apache.tomcatで org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:868) でorg.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) .util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1459) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threadsで java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) でjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) .TaskThread $ WrappingRunnable.run(TaskThread.java:61) (java.lang.Thread.run)(スレッド。Javaの:748)

私KafkaProducerServletは以下の通りである:

package simple_kafka; 

import java.io.IOException; 
import java.util.Properties; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.kafka.clients.producer.KafkaProducer; 
import org.apache.kafka.clients.producer.ProducerConfig; 
//import org.apache.kafka.clients.producer.Producer; 
import org.apache.kafka.clients.producer.ProducerRecord; 

/** 
* Servlet implementation class SimpleProducer 
*/ 
@WebServlet("/producer") 
public class SimpleProducer extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public SimpleProducer() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
//  response.getWriter().append("Served at: ").append(request.getContextPath()); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     doGet(request, response); 
     response.getWriter().append("Served at: ").append(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG); 
     String topicName = "ReplicaTopic"; 
      String key = "Key1"; 
      String value = "Value-1"; 

      Properties props = new Properties(); 
      props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.1.59:9092,192.168.1.59:9093"); 
      props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");   
      props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 

      KafkaProducer<String, String> producer = new KafkaProducer <String, String>(props); 
      try { 
       ProducerRecord<String, String> record = new ProducerRecord<>(topicName,key,value); 
       producer.send(record);   
       producer.close(); 
      } 
      catch(Exception e) { 
       response.getWriter().append("Exception at: ").append((CharSequence) e); 
      } 
//  response.sendRedirect("/consumer"); 
    } 
} 

私はJARのプロジェクト・プロパティのビルドパスに次の含まれていました:

  1. カフカ2.12-0.11.0.1.jar
  2. kafka-clients-0.11.0.1.jar
  3. slf4j-api-1.7.25.jar

答えて

0

長い検索の後、JARファイルWEB-INF-> libフォルダを含める必要があり、サーバーをeclipseから削除する必要があることが判明しました。&を再構成しました。その後、私はKafkaProducerを実行することができます。

関連する問題