Skip to content

Spring Boot 2.4.0 spring-kafka omits required jackson dependencies at runtime #24334

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
davidtrobinson opened this issue Dec 4, 2020 · 3 comments
Labels
status: invalid An issue that we don't feel is valid

Comments

@davidtrobinson
Copy link

davidtrobinson commented Dec 4, 2020

After upgrading to Spring Boot 2.4.0 with spring dependency-management 1.0.10.RELEASE on a java spring-kafka project I get the following error at runtime:

java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonNode
	at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:36) ~[kafka-clients-2.6.0.jar:na]
	at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910) ~[kafka-clients-2.6.0.jar:na]
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555) ~[kafka-clients-2.6.0.jar:na]
	at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.processRequests(KafkaAdminClient.java:1293) ~[kafka-clients-2.6.0.jar:na]
	at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1224) ~[kafka-clients-2.6.0.jar:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonNode
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonNode

	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]

After digging around I was able to add these two dependencies to my gradle file to get past the issue:

    runtime 'com.fasterxml.jackson.core:jackson-databind:2.11.3'
    runtime 'com.fasterxml.jackson.core:jackson-core:2.11.3'

I found that projects that additionally included the spring-boot-starter-web dependency didn't have the issue as the jackson dependencies were pulled in by that dependency.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Dec 4, 2020
@snicoll
Copy link
Member

snicoll commented Dec 4, 2020

Thanks for the report but that's an issue with Kafka 2.6 using Jackson but not declaring a dependency for it. We hope Kafka 2.6.1 is going to fix it.

@snicoll snicoll closed this as completed Dec 4, 2020
@snicoll
Copy link
Member

snicoll commented Dec 4, 2020

Please subscribe to #24247 for updates.

@snicoll snicoll added status: invalid An issue that we don't feel is valid and removed status: waiting-for-triage An issue we've not yet triaged labels Dec 4, 2020
@davidtrobinson
Copy link
Author

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: invalid An issue that we don't feel is valid
Projects
None yet
Development

No branches or pull requests

3 participants