Im trying to add Glue Schema to KafkaUI.
It is working fine without it or with Confluent one, but unable to start with Glue.
Here Env:
environment:
- name: KAFKA_CLUSTERS_0_NAME
value: "msk"
- name: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS
value: "boot:9098"
- name: KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL
value: "SASL_SSL"
- name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM
value: "AWS_MSK_IAM"
- name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS
value: "software.amazon.msk.auth.iam.IAMClientCallbackHandler"
- name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG
value: "software.amazon.msk.auth.iam.IAMLoginModule required awsDebugCreds=true;"
- name: KAFKA_CLUSTERS_1_NAME
value: "msk-2"
- name: KAFKA_CLUSTERS_1_BOOTSTRAPSERVERS
value: "boot2:9098"
- name: KAFKA_CLUSTERS_1_PROPERTIES_SECURITY_PROTOCOL
value: "SASL_SSL"
- name: KAFKA_CLUSTERS_1_PROPERTIES_SASL_MECHANISM
value: "AWS_MSK_IAM"
- name: KAFKA_CLUSTERS_1_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS
value: "software.amazon.msk.auth.iam.IAMClientCallbackHandler"
- name: KAFKA_CLUSTERS_1_PROPERTIES_SASL_JAAS_CONFIG
value: "software.amazon.msk.auth.iam.IAMLoginModule required awsDebugCreds=true;"
- name: kafka.clusters.1.serde.0.name
value: "GlueSchemaRegistry"
- name: kafka.clusters.1.serde.0.filePath
value: "/glue-serde/kafkaui-glue-serde.jar"
- name: kafka.clusters.1.serde.0.className
value: "io.kafbat.ui.serde.glue.GlueSerde"
- name: kafka.clusters.1.serde.0.properties.region
value: "us-east-1"
- name: kafka.clusters.1.serde.0.properties.registry
value: "SR"
- name: KAFKA_CLUSTERS_0_DISABLELOGDIRS
value: "true" # This is the key fix
- name: KAFKA_CLUSTERS_0_DISABLELOGDIRSCOLLECTION
value: "true"
- name: KAFKA_CLUSTERS_1_DISABLELOGDIRS
value: "true" # This is the key fix
- name: KAFKA_CLUSTERS_1_DISABLELOGDIRSCOLLECTION
value: "true"
And Docker:
FROM ghcr.io/kafbat/kafka-ui:v1.1.0
USER root
RUN mkdir /glue-serde
RUN wget -c https://github.com/kafbat/ui-serde-glue/releases/download/v1.1.0/serde-glue-v1.1.0-jar-with-dependencies.jar -o /glue-serde/kafkaui-glue-serde.jar
USER kafkaui
EXPOSE 80
I also tried with ghcr.io/kafbat/kafka-ui:latest
And Stack trace:
2025-05-28 23:05:43,897 ERROR [main] o.s.b.SpringApplication: Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messagesController' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/controller/MessagesController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'messagesService' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/service/MessagesService.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'deserializationService' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/service/DeserializationService.class]: Failed to instantiate [io.kafbat.ui.service.DeserializationService]: Constructor threw exception
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1377)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:289)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1122)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1093)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1030)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
at io.kafbat.ui.KafkaUiApplication.startApplication(KafkaUiApplication.java:24)
at io.kafbat.ui.KafkaUiApplication.main(KafkaUiApplication.java:17)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messagesService' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/service/MessagesService.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'deserializationService' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/service/DeserializationService.class]: Failed to instantiate [io.kafbat.ui.service.DeserializationService]: Constructor threw exception
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1377)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:289)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1631)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1519)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 25 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'deserializationService' defined in URL [jar:nested:/api.jar/!BOOT-INF/classes/!/io/kafbat/ui/service/DeserializationService.class]: Failed to instantiate [io.kafbat.ui.service.DeserializationService]: Constructor threw exception
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1377)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:289)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1631)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1519)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 39 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.kafbat.ui.service.DeserializationService]: Constructor threw exception
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:222)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:145)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318)
... 53 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.kafbat.ui.serde.glue.GlueSerde
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at io.kafbat.ui.serdes.CustomSerdeLoader$ChildFirstClassloader.loadClass(CustomSerdeLoader.java:122)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at io.kafbat.ui.serdes.CustomSerdeLoader.loadAndConfigure(CustomSerdeLoader.java:45)
at io.kafbat.ui.serdes.SerdesInitializer.loadAndInitCustomSerde(SerdesInitializer.java:265)
at io.kafbat.ui.serdes.SerdesInitializer.createSerdeFromConfig(SerdesInitializer.java:186)
at io.kafbat.ui.serdes.SerdesInitializer.init(SerdesInitializer.java:105)
at io.kafbat.ui.service.DeserializationService.<init>(DeserializationService.java:40)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:209)
... 55 common frames omitted
Im trying to add Glue Schema to KafkaUI.
It is working fine without it or with Confluent one, but unable to start with Glue.
Here Env:
And Docker:
I also tried with
ghcr.io/kafbat/kafka-ui:latestAnd Stack trace: