2017-06-20 2 views
0

j'ai un problème avec kafka producteur, mais je ne sais pas comment je peux résoudre ceKafka Exception producteur NoClassDefFoundError

Mon Maven Dépendance:

<dependency> 
    <groupId>org.apache.kafka</groupId> 
    <artifactId>kafka_2.10</artifactId> 
    <version>0.10.1.1</version> 
</dependency> 

Si je crée:

Producer<String, byte[]> producer = createKafkaProducer(); 

Je deviens Exception:

java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Producer 
at de.dienes.opitz.node.NodesValue.onSubscriptionValue(NodesValue.java:120) 
at org.eclipse.milo.opcua.sdk.client.subscriptions.OpcUaMonitoredItem.onValueArrived(OpcUaMonitoredItem.java:176) 
at org.eclipse.milo.opcua.sdk.client.subscriptions.OpcUaSubscriptionManager.lambda$null$28(OpcUaSubscriptionManager.java:547) 
at org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:107) 
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) 
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.producer.Producer 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 9 common frames omitted 

Idée où est le problème?

Répondre

2

org.apache.kafka.clients.producer.Producer est dans l'artefact kafka-clients. Vous devez utiliser

<dependency> 
    <groupId>org.apache.kafka</groupId> 
    <artifactId>kafka-clients</artifactId> 
    <version>0.10.2.1</version> 
</dependency> 

kafka_2.10 est l'artefact du courtier. Vous n'en avez pas besoin si vous écrivez simplement un producteur/consommateur (sauf pour l'intégration testant votre producteur/consommateur par rapport à un cluster de test).

0

si j'utilise

 <dependency> 
      <groupId>org.apache.kafka</groupId> 
      <artifactId>kafka-clients</artifactId> 
      <version>0.10.2.1</version> 
     </dependency> 

Je deviens la nouvelle erreur: KafkaProducer Claas introuvable.

Si je le faire avec mon client java et créer un producteur, erreur:

java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/KafkaProducer 

Je Testet sur le serveur avec le producteur de la console et la consommation de la console, ça marche! Mais avec le client Java devient une exception. Je n'ai aucune idée de plus