user11311618
user11311618

Reputation:

Kafka unable to resolve javax/xml/bind/* ClassNotFoundExeption for java 12?

I'm learning kafka and just downloaded kafka 0.10.1 (as it's the requirement of my project) and whenever i run this command line code

bin/kafka-server-start.sh config/server.properties

i get this error

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at kafka.utils.CoreUtils$.urlSafeBase64EncodeNoPadding(CoreUtils.scala:298)
    at kafka.utils.CoreUtils$.generateUuidAsBase64(CoreUtils.scala:286)
    at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId$1.apply(KafkaServer.scala:336)
    at kafka.server.KafkaServer$$anonfun$getOrGenerateClusterId$1.apply(KafkaServer.scala:336)
    at scala.Option.getOrElse(Option.scala:121)
    at kafka.server.KafkaServer.getOrGenerateClusterId(KafkaServer.scala:336)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:203)
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:39)
    at kafka.Kafka$.main(Kafka.scala:67)
    at kafka.Kafka.main(Kafka.scala)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 10 more

I'm actually using java 12 and javax/xml/bind/* is removed from java 11 so some suggestion were to add the dependencies in the pom.xml file but i unzipped kafka from a .tar file and not build it using maven so how can i resolve this error in kafka??

should i download java-8 for this??

Upvotes: 0

Views: 2689

Answers (3)

user1990991
user1990991

Reputation: 3

I am using JDK10. for that I have added something like below to make it work for me. 1) edit kafka-run-class.bat 2) the set COMMAND=%JAVA% –add-modules java.xml.bind rest of the lines remain same. 3) Run kafka server

Upvotes: 0

OneCricketeer
OneCricketeer

Reputation: 191711

I'm learning kafka and just downloaded kafka 0.10.1

This version of Kafka does not support versions of Java above 8.

Only the newest Kafka 2.2.0 (which very likely will work the same for your learning purposes), added support for Java 11

Upvotes: 1

Mebin Joe
Mebin Joe

Reputation: 2209

This javax/xml/bind API is removed since Java 11. You can refer to How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 for a workaround

Upvotes: 0

Related Questions