Lucee 6.2 and Tomcat 11 - NoClassDefFoundError

I tried to update Tomcat 9 to 11 using the latest Lucee snapshot.

My Lucee Servlet looks like this:

<servlet id="Lucee">
     <description>Lucee CFML Engine</description>
     <servlet-name>CFMLServlet</servlet-name>
     <servlet-class>lucee.loader.servlet.jakarta.CFMLServlet</servlet-class>

     <init-param>
       <param-name>lucee-server-root</param-name>
       <param-value>D:/ApacheTomcat11Lucee6</param-value>
       <description>Lucee Server configuration directory (for Server-wide configurations, settings, and libraries)</description>
     </init-param>
     <init-param>
       <param-name>lucee-web-directory</param-name>
       <param-value>D:/ApacheTomcat11Lucee6/lucee-web/{web-context-label}/</param-value>
       <description>Lucee Web Directory (for Website-specific configurations, settings, and libraries)</description>
     </init-param>
     <load-on-startup>2</load-on-startup>
   </servlet>
   <servlet-mapping>
     <servlet-name>CFMLServlet</servlet-name>
     <url-pattern>*.cfc</url-pattern>
     <url-pattern>*.cfm</url-pattern>
     <url-pattern>*.cfml</url-pattern>
   </servlet-mapping>

But I get this error on start:
java.lang.NoClassDefFoundError: javax/servlet/ServletException

01-Apr-2025 17:20:17.847 SCHWERWIEGEND [main] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:723)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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: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:415)
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:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:470)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:179)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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:716)
… 19 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletException
at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3473)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2542)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:199)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:138)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:319)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:976)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:290)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4352)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
… 25 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletException
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
… 37 more
01-Apr-2025 17:20:17.848 SCHWERWIEGEND [main] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:723)
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:415)
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:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:470)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:735)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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:716)
… 11 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:723)
… 19 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:179)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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:716)
… 19 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletException
at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3473)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2542)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:199)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:138)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:319)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:976)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:290)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4352)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
… 25 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletException
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
… 37 more
01-Apr-2025 17:20:17.853 SCHWERWIEGEND [main] org.apache.catalina.startup.Catalina.start Tomcat kann nicht starten, da eine ben├Âtigte Server Komponente Startprobleme hat
org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:735)
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:415)
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:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:470)
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:723)
… 11 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:735)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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:716)
… 11 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:723)
… 19 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[pc-hkl].StandardContext]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:179)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
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:716)
… 19 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletException
at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3473)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2542)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:199)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:138)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:319)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:976)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:290)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4352)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
… 25 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletException
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
… 37 more
01-Apr-2025 17:20:17.854 INFORMATION [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler [“http-nio-80”]
01-Apr-2025 17:20:17.854 INFORMATION [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler [“ajp-nio-0:0:0:0:0:0:0:1-8009”]
01-Apr-2025 17:20:17.855 INFORMATION [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
01-Apr-2025 17:20:17.856 INFORMATION [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler [“http-nio-80”]
01-Apr-2025 17:20:17.856 INFORMATION [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler [“ajp-nio-0:0:0:0:0:0:0:1-8009”]

Lucee 6.2 supports Jakarta but still is javax based

So, you’ll need to also include the javax jars, as Lucee Express does

Lucee Express is a great starting point if you don’t want to use the installer, but it’s cut from the same cloth, i.e. 99% of the same code and these days it always comes with recent/latest versions of Tomcat

There is also additional config to make the lib/ext dir work in the catalina.properties file

Yes I know the screenshot is for Lucee 7 (which doesn’t require javax jars!)

1 Like

Thanks, with these 3 extra jars it works perfectly!

1 Like