I’ve setup kafka in my google cloud instance, and was able to run the commands for producer and consumer creation successfully.
Now I’m trying to run this simple kafka producer code in java, however I’m not able to successfully execute the code after compilation.
For compilation,
sudo javac -classpath '/opt/kafka/libs/*' *.java
works perfectly and the SimpleProducer.class
is generated.
However when I try the execution command, I get the below errors.
[username@gcloud-instance ~]$ java -cp '/opt/kafka/libs/*':. SimpleProducer Error: Could not find or load main class SimpleProducer
I tried running some other commands like
[username@gcloud-instance ~]$ sudo java -cp '/opt/kafka/libs/*':. SimpleProducer sample-quickstart-topic Exception in thread "main" org.apache.kafka.common.config.ConfigException: Invalid value org.apache.kafka.common.serializa-tion.StringSerializer for configuration key.serializer: Class org.apache.kafka.common.seriali za-tion.StringSerializer could not be found. at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:744) at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:490) at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:483) at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:113) at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:133) at org.apache.kafka.clients.producer.ProducerConfig.<init>(ProducerConfig.java:490) at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:290) at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:317) at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:302) at SimpleProducer.main(SimpleProducer.java:28)
But none seem to work. Any help would be appreciated, thanks.
Advertisement
Answer
Linked page has a typo in the serializers
Remove the hyphens from serializa-tion
since they are not allowed in Java class names
Or use StringSerializer.class
directly as the value rather than a string.
I still recommend that you use an IDE along with Maven/Gradle rather than editing and compiling via a terminal