2017-06-05 4 views
1

ich diesen Fehler, wenn in Eclipse-mein Produzent Klasse läuft: org.apache .kafka.common.config.ConfigException: Fehlende erforderliche Konfiguration „bootstrap.servers“, dieorg.apache.kafka.common.config.ConfigException: Fehlende erforderliche Konfiguration „bootstrap.servers“, die keinen Standardwert hat

hier keinen Standardwert hat, ist mein Produzent Klasse:

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(); 
    } 
    } 
} 

Alle Hinweise, wie man repariere es?

+1

Sie haben den Eigenschaftsschlüssel '" bootstrap.servers "' falsch geschrieben. Um diesen Fehler in Zukunft zu vermeiden, verwenden Sie stattdessen die Konstante 'ProducerConfig.BOOTSTRAP_SERVERS_CONFIG'. –

Antwort

4

Gerade die

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

zu

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

Und in Ihrem Code

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

die common nicht richtig ist, das richtige Paket ist org.apache.kafka.common.serialization.StringSerializer

0

Verwenden Sie die folgenden und vermeiden hartcodierte Werte

Für

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"); 

Verwenden

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 in gefunden verwenden werden org.apache.kafka.clients.producer Paket

Verwandte Themen