HI JB,

I tried to start my application using original ServiceMix Kafka Clients and
Kafka Stream bundles.

The problem is in the way Kafka Clients library handles configuration. You
need to pass the class name and the Kafka client creates the instance via
*Class.getDeclaredConstructor().newInstance()*.  This is what is happens
with Kafka Streams, it passes class name and Kafka Clients fails because it
can't find the class.

I went through the Kafka libs source code and found that it uses context
class loader if present. The issues are gone for now after setting my
bundle class loader as context class loader.

Regards



sob., 26 mar 2022 o 07:30 Jean-Baptiste Onofré <j...@nanthrax.net> napisał(a):

> Hi Daniel,
>
> Generally speaking, a solution that always works is to create your
> bundle with private packages/ship all kafka packages (general comment
> in OSGi/Karaf).
>
> If you want to use the import package approach, the ServiceMix bundles
> should work (I didn't try recently, but I tried while ago).
>
> About your error, I checked and LogAndFailExceptionHandler class is
> present in the kafka-streams bundle.
>
> Do you have the import in your bundle (as I guess the
> kafka.common.Config is in your bundle classloader, so looking for
> LogAndFailExceptionHandler class in the same classloader) ?
>
> Regards
> JB
>
> On Sat, Mar 26, 2022 at 7:01 AM Daniel Las <daniel....@empirica.io> wrote:
> >
> > Hi,
> >
> > Did anybody manage to start Kafka streams application in Karaf? I tried
> different approaches:
> >
> > * use ServiceMix kafka-clients and kafka-streams bundles (2.8.1_1)
> > * repackage kafka-streams and make it a fragment for kafka-clients
> > * shade my bundle with kafka-clients and kafka-streams included
> >
> > and every time fail with a class loading issue related to default
> configuration template built inside kafka-streams, specifically:
> >
> > Caused by: org.apache.kafka.common.config.ConfigException: Invalid value
> org.apache.kafka.streams.errors.LogAndFailExceptionHandler for
> configuration default.deserialization.exception.handler: Class
> org.apache.kafka.streams.errors.LogAndFailExceptionHandler could not be
> found.
> >
> > Best regards
> >
> > --
> > Daniel Łaś
> >
>


-- 
Daniel Łaś

Reply via email to