You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicemix.apache.org by "Lukas Holthof (Jira)" <ji...@apache.org> on 2021/01/12 09:33:00 UTC

[jira] [Created] (SM-4641) Bundle kafka-clients are missing jackson-databind import

Lukas Holthof created SM-4641:
---------------------------------

             Summary: Bundle kafka-clients are missing jackson-databind import 
                 Key: SM-4641
                 URL: https://issues.apache.org/jira/browse/SM-4641
             Project: ServiceMix
          Issue Type: Bug
          Components: bundles
            Reporter: Lukas Holthof


I am using org.apache.servicemix.bundles.kafka-clients in version 2.2.1_1. After updating to 2.6.0_1 the application fails with:
{code:java}
2020 12 10 07_30_02#+00#ERROR#org.apache.kafka.common.utils.KafkaThread###kafka-producer-network-thread | MPLQueueProducer-1607585400245#na###Uncaught exception in thread 'kafka-producer-network-thread \| MPLQueueProducer-1607585400245':java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/ApiVersionsRequest$Builder : cannot initialize class because prior initialization attempt failed                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)Caused by: java.lang.ExceptionInInitializerError: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonNode                at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:36)                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonNode not found by org.apache.servicemix.bundles.kafka-clients [170]                at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)                at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)                at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)                at java.lang.ClassLoader.loadClass(ClassLoader.java:413)                at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:36)                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)                 at java.lang.Class.setExceptionThrownDuringClinit(Class.java:3685)                ... 5 common frames omitted|java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/ApiVersionsRequest$Builder : cannot initialize class because prior initialization attempt failed                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)Caused by: java.lang.ExceptionInInitializerError: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonNode                at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:36)                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonNode not found by org.apache.servicemix.bundles.kafka-clients [170]                at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)                at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)                at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)                at java.lang.ClassLoader.loadClass(ClassLoader.java:413)                at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:36)                at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:910)                at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:555)                at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:325)                at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)                at java.lang.Thread.run(Thread.java:836)                 at java.lang.Class.setExceptionThrownDuringClinit(Class.java:3685)                ... 5 common frames omitted
{code}
Running on version 2.5.0_1, it does not show this error. Most likely kafka is not using jackson-databind at this point in earlier versions, but that is just my assumption.

I found a related issue in the camel community: https://issues.apache.org/jira/browse/CAMEL-15752

Deviating from their resolution I do not think it is actually a version conflict, but the servicemix bundle is just missing the import. By adding this to the consuming project this import gets added. But ideally this would be added to the servicemix bundle, so not every consumer of the bundle has to care about it. What do you think?

Another reported issue similar to the one in the camel community: [https://stackoverflow.com/questions/63947560/error-org-apache-kafka-common-utils-kafkathread-uncaught-exception-in-thread]

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)