2017-06-05 1 views
1

Je reçois cette erreur lors de l'exécution de ma classe de producteur Eclipse: org.apache .kafka.common.config.ConfigException: Missing configuration requise "bootstrap.servers" qui n'a pas de valeur par défautorg.apache.kafka.common.config.ConfigException: Missing configuration requise « bootstrap.servers » qui n'a pas de valeur par défaut

Voici ma classe de producteur:

public class SimpleProducer { 

    public static void main(String[] args) throws Exception { 

    try { 
     String topicName = "mytopic"; 
     String key = "key1"; 
     String value = "Value-1"; 

     Properties prop = new Properties(); 
     prop.put("bootstrap.server","localhost:9092"); 
     prop.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer"); 
     prop.put("value.serializer","org.apache.kafka.cpmmon.serialization.StringSerializer"); 

     Producer<String, String> producer = new KafkaProducer<>(prop); 

     ProducerRecord<String, String> record = new ProducerRecord<>(topicName,key,value); 
     producer.send(record); 
     producer.close(); 
     System.out.println("SimpleProducer Completed."); 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

Les pointeurs sur la façon de répare le?

+1

Vous avez mal orthographié la clé de propriété '" bootstrap.servers "'. Pour éviter cette erreur dans le futur, utilisez la constante 'ProducerConfig.BOOTSTRAP_SERVERS_CONFIG' à la place. –

Répondre

4

il suffit de changer le

prop.put("bootstrap.server","localhost:9092");

à

prop.put("bootstrap.servers","localhost:9092");

Et dans votre code

prop.put("value.serializer","prop.put("value.serializer","org.apache.kafka.cpmmon.serialization.StringSerializer");

le common est pas correctement, le bon paquet est org.apache.kafka.common.serialization.StringSerializer

0

Utilisez les commandes suivantes et évitez d'utiliser des valeurs hardcoded

Pour

prop.put("bootstrap.server","localhost:9092"); 
prop.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer"); 
prop.put("value.serializer","org.apache.kafka.cpmmon.serialization.StringSerializer"); 

Utilisez

prop.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServer); 
prop.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 
prop.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); 

ProducerConfig se trouve dans org.apache.kafka.clients.producer package