I have an UBER jar that contains all the dependencies I require for the
execution, I find it weird that I need to add an external library to lib to
support this.

On Thu, Oct 14, 2021 at 12:38 PM Chesnay Schepler <ches...@apache.org>
wrote:

> You need to add the jars to the lib directory.
> This is independent of how Flink works; the JSONLayout needs jackson, so
> you need to make sure it is on the classpath.
>
> On 14/10/2021 11:34, Yuval Itzchakov wrote:
>
> Scala 2.12
> Java 11
> Flink 1.13.2
> Running in Kubernetes
>
> Hi,
>
> While trying to use a configuration with JSONLayout in log4j2 with XML
> format, we receive the following error when bootstrapping the JM / TM:
>
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> Exception in thread "main" java.lang.NoClassDefFoundError:
> com/fasterxml/jackson/databind/ser/FilterProvider
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.layout.JsonLayout.<init>(JsonLayout.java:158)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.layout.JsonLayout.<init>(JsonLayout.java:69)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.layout.JsonLayout$Builder.build(JsonLayout.java:102)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.layout.JsonLayout$Builder.build(JsonLayout.java:77)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1002)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:942)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:934)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:934)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:552)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:241)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:288)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:579)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:651)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:668)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:155)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:329)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:349)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> org.apache.flink.runtime.util.bash.BashJavaUtils.<clinit>(BashJavaUtils.java:45)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> Caused by: java.lang.ClassNotFoundException:
> com.fasterxml.jackson.databind.ser.FilterProvider
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> flink-adte-f7925524a2d37c92873ff0020dcd46c3-22b605b8-jm-946v7qt jobmanager
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
>
> According to
> https://stackoverflow.com/questions/65062081/java-lang-classnotfoundexception-com-fasterxml-jackson-databind-ser-filterprovi,
> this happens due to the fact the JM / TM start with a modified classpath
> that doesn't include jackson-databind.
>
> While I could add the jars explicitly to the `lib/` directory in the
> Dockerfile, this is pretty annoying to maintain as versions evolve. Is
> there any other workaround for this? or an open issue?
>
> --
> Best Regards,
> Yuval Itzchakov.
>
>
>

-- 
Best Regards,
Yuval Itzchakov.

Reply via email to