-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Low
-
None
-
Affects Version/s: 9.5.0, 9.12.10, 10.4.1
-
Component/s: Environment - Java
-
9.05
-
1
-
Severity 3 - Minor
Issue Summary
JSONLayout log4j2 Configuration Fails Due to Missing Jackson Class
This is reproducible on Data Center: (yes)
Steps to Reproduce
- Configure Log4j with JSONLayout in the log4j2.xml configuration file.
- Start the application and observe the log output.
Note I've attached a sample log4j2.xml configuration file that demonstrates the issue.
Expected Results
Logs should be formatted in JSON as specified by the JSONLayout configuration.
Actual Results
Logs are written in plain text format, and the following error is observed in catalina.out:
2025-03-06 10:12:52,960 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.layout.JsonLayout for element JSONLayout: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/FilterProvider java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/FilterProvider at org.apache.logging.log4j.core.layout.JsonLayout.<init>(JsonLayout.java:159) at org.apache.logging.log4j.core.layout.JsonLayout.<init>(JsonLayout.java:71) at org.apache.logging.log4j.core.layout.JsonLayout$Builder.build(JsonLayout.java:103) at org.apache.logging.log4j.core.layout.JsonLayout$Builder.build(JsonLayout.java:79) at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:124) at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1122) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1047) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1039) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1039) at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651) at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:249) at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:295) at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:245) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:176) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:666) at com.atlassian.logging.log4j.juli.JuliToLog4jHandler.publish(JuliToLog4jHandler.java:45) at java.logging/java.util.logging.Logger.log(Logger.java:980) at java.logging/java.util.logging.Logger.doLog(Logger.java:1007) at java.logging/java.util.logging.Logger.logp(Logger.java:1173) at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:116) at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:264) at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:83) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4438) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:878) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.startup.Catalina.start(Catalina.java:735) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ser.FilterProvider at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ... 58 more
Workaround
There is currently no workaround for this problem.