Hi

I have deployed Tomcat 11, OpenJDK 25 (tried OpenJDK 21) with Guacamole 1.6.0.war on Debian. Looking at Catalina.log, the Guacamole WAR is correctly deployed into /var/lib/tomcat11/webapps/quacamole. 01-Oct-2025 12:06:27.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/11.0.6 (Debian) 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 3 2025 20:30:12 UTC 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 11.0.6.0 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            6.12.48+deb13-amd64 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-25-openjdk-amd64 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           25-ea+32-Debian-1 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Debian 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /var/lib/tomcat11 01-Oct-2025 12:06:27.691 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/share/tomcat11 01-Oct-2025 12:06:27.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/var/lib/tomcat11/conf/logging.properties 01-Oct-2025 12:06:27.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.awt.headless=true 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 01-Oct-2025 12:06:27.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --enable-native-access=ALL-UNNAMED 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/var/lib/tomcat11 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/share/tomcat11 01-Oct-2025 12:06:27.701 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/tmp 01-Oct-2025 12:06:27.705 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent An older version [1.3.1] of the Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [2.0.5] 01-Oct-2025 12:06:27.705 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.5]. 01-Oct-2025 12:06:27.710 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.5.1 1 Jul 2025] 01-Oct-2025 12:06:27.925 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 01-Oct-2025 12:06:27.939 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [370] milliseconds 01-Oct-2025 12:06:27.971 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 01-Oct-2025 12:06:27.971 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/11.0.6 (Debian)] 01-Oct-2025 12:06:27.976 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [/etc/tomcat11/Catalina/localhost/host-manager.xml] 01-Oct-2025 12:06:27.985 WARNING [main] org.apache.catalina.startup.HostConfig.deployDescriptor The path attribute with value [/host-manager] in deployment descriptor [/etc/tomcat11/Catalina/localhost/host-manager.xml] has been ignored 01-Oct-2025 12:06:28.601 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Oct-2025 12:06:28.624 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [/etc/tomcat11/Catalina/localhost/host-manager.xml] has finished in [646] ms 01-Oct-2025 12:06:28.624 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [/etc/tomcat11/Catalina/localhost/manager.xml] 01-Oct-2025 12:06:28.625 WARNING [main] org.apache.catalina.startup.HostConfig.deployDescriptor The path attribute with value [/manager] in deployment descriptor [/etc/tomcat11/Catalina/localhost/manager.xml] has been ignored 01-Oct-2025 12:06:29.000 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Oct-2025 12:06:29.002 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [/etc/tomcat11/Catalina/localhost/manager.xml] has finished in [378] ms 01-Oct-2025 12:06:29.003 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/var/lib/tomcat11/webapps/guacamole.war] 01-Oct-2025 12:06:29.939 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Oct-2025 12:06:29.940 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file 01-Oct-2025 12:06:29.940 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/guacamole] startup failed due to previous errors 01-Oct-2025 12:06:29.945 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/var/lib/tomcat11/webapps/guacamole.war] has finished in [942] ms 01-Oct-2025 12:06:29.946 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/var/lib/tomcat11/webapps/ROOT] 01-Oct-2025 12:06:30.304 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Oct-2025 12:06:30.306 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/var/lib/tomcat11/webapps/ROOT] has finished in [360] ms 01-Oct-2025 12:06:30.309 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 01-Oct-2025 12:06:30.316 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [2375] milliseconds

Looking at the localhost

01-Oct-2025 12:06:29.940 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [org.apache.guacamole.GuacamoleServletContextListener]         java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener                 at java.base/java.lang.ClassLoader.defineClass1(Native Method)                 at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)                 at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)                 at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2170)                 at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:696)                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1189)                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1059)                 at java.base/java.lang.ClassLoader.defineClass1(Native Method)                 at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)                 at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)                 at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2170)                 at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:696)                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1189)                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1059)                 at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:482)                 at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:465)                 at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)                 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3943)                 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4438)                 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)                 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:566)                 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)                 at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:925)                 at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1842)                 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)                 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)                 at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)                 at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:125)                 at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:730)                 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:381)                 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1581)                 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:265)                 at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)                 at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)                 at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)                 at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:743)                 at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:769)                 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)                 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1164)                 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)                 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)                 at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)                 at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:149)                 at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716)                 at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)                 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)                 at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)                 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)                 at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:866)                 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)                 at org.apache.catalina.startup.Catalina.start(Catalina.java:759)                 at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)                 at java.base/java.lang.reflect.Method.invoke(Method.java:565)                 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)                 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)         Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1228)                 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1059)
                ... 55 more

Is the error  "Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1228)" caused by a packaging error in the guacamole-1.6.0.war file?

Kind Regards

Russell

Reply via email to