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.