Jenkins 2.479.1 won't start - .NoClassDefFoundError: jakarta/servlet/ServletContextListener

We have been using Jenkins for 8+ years in my organization. We recently started testing our upgrade process from 2.462.1 to 2.479.1.

We also upgraded our Tomcat version from 9.0.91 to 9.0.97 and Java version from 17.0.12 to 17.0.13.

We have isolated the issue and found that in our environment the main issue is the Jenkins version. We swapped Java versions, Tomcat versions and Jenkins versions but we cannot find a setup that allows us to run 2.479.1 without getting the error below. We are able to run 2.462.1 in all situations. We also tried to run against Java 21.0.5. We have tried to run 2.479.1 as a clean fresh install to avoid any plug-in errors.

SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [hudson.WebAppMain]
java.lang.NoClassDefFoundError: jakarta/servlet/ServletContextListener

Any help would be appreciated.

Version 2.479.1 doesn’t work with tomcat 9 as it requires jakarta ee 9.
See Servlet Container Support Policy
The recommended way to run Jenkins is with the built in Jetty server.

1 Like