2017-06-05 4063 views
1

运行我的制片人上课的时候Eclipse的我得到这个错误没有默认值: org.apache .kafka.common.config.ConfigException:缺少必需的配置“bootstrap.servers”,它没有默认值org.apache.kafka.common.config.ConfigException:缺少必需的配置“bootstrap.servers”其中有

这里是我的制作等级:

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

上任何指针如何修理它?

+1

您拼写属性键“bootstrap.servers”'。为了避免将来出现这种错误,请改用常量'ProducerConfig.BOOTSTRAP_SERVERS_CONFIG'。 –

回答

4

只要改变

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

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

并在代码

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

common不正确,正确的包装是org.apache.kafka.common.serialization.StringSerializer

0

使用以下,避免使用硬编码值

对于

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

使用

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将在被发现org.apache.kafka.clients.producer

相关问题