Konstruktion Da es sehr schwierig ist, ein Kafka-Connector zu debuggen, die meine dockerized Elastic Instanz verbinden muss, konnte ich nicht herausfinden, warum ich diese Ausnahme bin immer ...NoSuchMethodError wenn PreBuiltTransportClient für elastische
Als ich bin versuchen, neue Transport Client:
Settings settings = Settings.builder()
.put("cluster.name", clusterName).build();
client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(url), port));
das ist die ganze Klasse: https://github.com/skynyrd/kafka-connect-elastic-sink/blob/master/src/main/java/com/skynyrd/kafka/client/ElasticClientImpl.java
ich diesen Fehler:
java.lang.NoSuchMethodError: org.elasticsearch.transport.client.PreBuiltTransportClient.addPlugins(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:127)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:113)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:103)
at com.skynyrd.kafka.client.ElasticClientImpl.<init>(ElasticClientImpl.java:33)
at com.skynyrd.kafka.service.ElasticServiceImpl.<init>(ElasticServiceImpl.java:38)
at com.skynyrd.kafka.ElasticSinkTask.start(ElasticSinkTask.java:30)
at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:231)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:145)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:139)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:182)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
[2017-09-12 14:18:23,817] ERROR Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:142)
[2017-09-12 14:18:23,817] ERROR Task ElasticSinkConnector-0 threw an uncaught and unrecoverable exception during shutdown (org.apache.kafka.connect.runtime.WorkerTask:120)
java.lang.NullPointerException
at com.skynyrd.kafka.ElasticSinkTask.stop(ElasticSinkTask.java:47)
at org.apache.kafka.connect.runtime.WorkerSinkTask.close(WorkerSinkTask.java:131)
at org.apache.kafka.connect.runtime.WorkerTask.doClose(WorkerTask.java:118)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:145)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:182)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Hier ist mein Repository in lokalen auszuführen: https://github.com/skynyrd/kafka-connect-elastic-sink
Bin ich etwas fehlt? Danke