Using logback in Payara 6 produces ClassNotFoundException

22 views Asked by At

I want to use logback 1.4.14 inside Payara 6.2024.1. Therefore I created a domain using

asadmin create-domain TEST

I moved these jars into ${payaraRoot}\glassfish\domains\TEST\lib\ext:

  • logback-core-1.4.14.jar
  • logback-classic-1.4.14.jar

I moved logback.xml into ${payaraRoot}\glassfish\domains\TEST\config. Furthermore I replaced the handler in ${payaraRoot}\glassfish\domains\TEST\config\logging.properties with handlers=org.slf4j.bridge.SLF4JBridgeHandler.

When I start the domain I can see that my logfile is generated in ${payaraRoot}\glassfish\domains\TBCS\logs according to the logback.xml. So I know that logback is picked up. I can also see the normal Payara bootstrap log messages. So it seems that it works.

But accessing the admin gui via locahost:4848 fails and in the log file the following stacktrace is produced:

02.02.2024 14:36:38.858 [Thread-14] ERROR org.apache.catalina.core.StandardContext:5770 - Exception during cleanup after start failed org.apache.catalina.LifecycleException: Manager has not yet been started at org.apache.catalina.session.StandardManager.stop(StandardManager.java:872) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:5951) at com.sun.enterprise.web.WebModule.stop(WebModule.java:648) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5768) at com.sun.enterprise.web.WebModule.start(WebModule.java:619) at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1549) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1225) at org.apache.catalina.core.StandardHost.start(StandardHost.java:933) at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1549) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1225) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:396) at org.apache.catalina.startup.Embedded.start(Embedded.java:951) at com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:551) at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303) at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351) at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466) at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59) at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47) at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131) at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176) at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98) at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103) at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93) at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67) at org.glassfish.internal.data.EngineInfo.getContainer(EngineInfo.java:86) at com.sun.enterprise.v3.server.ApplicationLifecycle.startContainers(ApplicationLifecycle.java:1333) at com.sun.enterprise.v3.server.ApplicationLifecycle.startEngine(ApplicationLifecycle.java:1095) at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:990) at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:456) at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:433) at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:215) at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:103) 02.02.2024 14:36:38.860 [Thread-14] ERROR org.apache.catalina.core.ContainerBase:1552 - Container StandardEngine[glassfish-web].StandardHost[server].StandardContext[] has not been started org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: jakarta/servlet/ServletContainerInitializer at org.apache.catalina.core.StandardContext.start(StandardContext.java:5772) at com.sun.enterprise.web.WebModule.start(WebModule.java:619) at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1549) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1225) at org.apache.catalina.core.StandardHost.start(StandardHost.java:933) at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1549) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1225) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:396) at org.apache.catalina.startup.Embedded.start(Embedded.java:951) at com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:551) at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303) at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351) at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466) at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59) at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47) at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131) at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176) at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98) at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103) at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93) at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67) at org.glassfish.internal.data.EngineInfo.getContainer(EngineInfo.java:86) at com.sun.enterprise.v3.server.ApplicationLifecycle.startContainers(ApplicationLifecycle.java:1333) at com.sun.enterprise.v3.server.ApplicationLifecycle.startEngine(ApplicationLifecycle.java:1095) at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:990) at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:456) at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:433) at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:215) at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:103) Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/ServletContainerInitializer at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:579) at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.loadClass(APIClassLoaderServiceImpl.java:281) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:579) at com.sun.enterprise.loader.CurrentBeforeParentClassLoader.loadClass(CurrentBeforeParentClassLoader.java:83) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1797) at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1696) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1217) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) at org.glassfish.web.loader.ServletContainerInitializerUtil.getInterestList(ServletContainerInitializerUtil.java:191) at org.apache.catalina.core.StandardContext.callServletContainerInitializers(StandardContext.java:5819) at com.sun.enterprise.web.WebModule.callServletContainerInitializers(WebModule.java:736) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5747) ... 30 common frames omitted Caused by: java.lang.ClassNotFoundException: jakarta.servlet.ServletContainerInitializer at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ... 56 common frames omitted 02.02.2024 14:36:39.126 [Thread-14] INFO c.sun.enterprise.v3.server.ApplicationLoaderService:439 - Loading application __admingui done in 1.411 ms

Basically it says ClassNotFoundException: jakarta.servlet.ServletContainerInitializer. But when I remove the two logback jars from the lib\ext directory everything works just fine.

What do I have to do to get logback 1.4.14 work in Payara 6.2024.1 (Community Full)? The steps I took work fine for logback 1.4.14 and Payara 5.2022.5 (Community Full).

0

There are 0 answers