Search code examples
spring-bootspring-kafkaspring-boot-testspring-kafka-test

java.lang.ClassNotFoundException: org.apache.jute.OutputArchive with latest spring-kafka and spring-kafka-test 2.5.2


We have a spring boot app with spring-kafka and we are using embedded kafka for testing. We have upgraded Spring boot to 2.3.1 version and follow by latest spring kafka dependency which is 2.5.2. Now we are getting below error while executing test. I have checked zookeeper-jute dependency is present in zookeeper-3.5.7.

When i am adding zookeeper-jute dependency in our pom, then it's working fine

Caused by: java.lang.ClassNotFoundException: org.apache.jute.OutputArchive
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_51]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_51]
    at org.springframework.kafka.test.EmbeddedKafkaBroker$EmbeddedZookeeper.<init>(EmbeddedKafkaBroker.java:660) ~[spring-kafka-test-2.5.2.RELEASE.jar:2.5.2.RELEASE]
    at org.springframework.kafka.test.EmbeddedKafkaBroker.afterPropertiesSet(EmbeddedKafkaBroker.java:287) ~[spring-kafka-test-2.5.2.RELEASE.jar:2.5.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:407) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.kafka.test.context.EmbeddedKafkaContextCustomizer.customizeContext(EmbeddedKafkaContextCustomizer.java:116) ~[spring-kafka-test-2.5.2.RELEASE.jar:2.5.2.RELEASE]
    at org.springframework.boot.test.context.SpringBootContextLoader$ContextCustomizerAdapter.initialize(SpringBootContextLoader.java:302) ~[spring-boot-test-2.3.1.RELEASE.jar:2.3.1.RELEASE]
    at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:626) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
    at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:370) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

Solution

  • It should be pulled in transitively by zookeeper itself; it is for me:

    enter image description here

    You should not have to manually declare it in your pom; so perhaps some maven problem?