【发布时间】:2022-01-25 22:09:16
【问题描述】:
程序在本地PC运行时,运行正常,但如果在docker中运行会抛出以下错误:
Exception in thread "Thread-16" java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/Serializer
at org.eclipse.kura.example.configurable.ConfigurableExample$1.run(ConfigurableExample.java:52)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.Serializer cannot be found by org.eclipse.kura.example.configurable_1.0.0.202201251713
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 2 more
但这在 LocalMachine 中运行良好。 什么问题?
【问题讨论】:
-
看起来缺少一个 kafka 依赖项。
-
@RealSkeptic,在本地机器上运行时没有看到这个问题,如何解决?
-
您需要解释如何在“本地机器”上运行代码。显然,Docker 没有使用您提供的在本地运行它的相同 Java 命令。最明显的例子是你的 IDE 可能会在类路径中包含所有声明的依赖项,但构建非 fat-jar 不会
标签: java apache-kafka