[英]Set VALUE_SERIALIZER_CLASS_CONFIG for binary value
I get this error when I attempt to execute my Kafka producer application:当我尝试执行我的 Kafka 生产者应用程序时出现此错误:
Exception in thread "main" org.apache.kafka.common.errors.SerializationException: Can't convert value of class [B to class org.apache.kafka.common.serialization.IntegerSerializer specified in value.serializer Caused by: java.lang.ClassCastException: [B cannot be cast to java.lang.Integer at org.apache.kafka.common.serialization.IntegerSerializer.serialize(IntegerSerializer.java:19) at org.apache.kafka.common.serialization.Serializer.serialize(Serializer.java:62) at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:894) at org.apache.kafka.clients.producer.KafkaProduc Exception in thread "main" org.apache.kafka.common.errors.SerializationException: Can't convert value of class [B to class org.apache.kafka.common.serialization.IntegerSerializer specified in value.serializer Caused by: java. lang.ClassCastException: [B cannot be cast to java.lang.Integer at org.apache.kafka.common.serialization.IntegerSerializer.serialize(IntegerSerializer.java:19) at org.apache.kafka.common.serialization.Serializer.serialize (Serializer.java:62) at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:894) at org.apache.kafka.clients.producer.KafkaProduc er.send(KafkaProducer.java:856) at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:743) at com.cme.pe.ProducerDemo.main(ProducerDemo.java:50) er.send(KafkaProducer.java:856) at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:743) at com.cme.pe.ProducerDemo.main(ProducerDemo.java:50)
The issue is that my VALUE_SERIALIZER_CLASS_CONFIG
property is StringSerializer
but my KafkaProducer
and Producer record
have a binary value问题是我的VALUE_SERIALIZER_CLASS_CONFIG
属性是StringSerializer
但我的KafkaProducer
和Producer record
具有二进制值
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, byte[]> producer = new KafkaProducer<String, byte[]>(properties);
ProducerRecord<String, byte[]> record = new ProducerRecord<String, byte[]>("foo", allBytes);
What should my VALUE_SERIALIZER_CLASS_CONFIG
be set to for this?我的VALUE_SERIALIZER_CLASS_CONFIG
应该为此设置什么?
ByteArraySerializer.class.getName()
The line should be该行应该是
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getName());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.