My IT department ran an automated upgrade on my server today, forcing an upgrade from 17.7 to 17.8. After rebooting the server, Jetty is responding with an “Error 503 Service Unavailable” message. My system info is:
- OS: Ubuntu 22.04.5
- Java: openjdk 21.0.8 2025-07-15
- Reverse Proxy: Apache2
Running sudo systemctl status xwiki shows that the service is running and no errors are reported. However, visiting the URL in the browser results in the 503 message.
Displaying the Jetty log with tail -n 100 2025_10_02.jetty.log shows the following:
2025-10-02 11:40:29.509:INFO :oxtjl.NotifyListener:main: Starting Jetty on port 8080, on Java 21.0.8+9-Ubuntu-0ubuntu122.04.1 (OpenJDK Runtime Environment)...
2025-10-02 11:40:29.515:WARN :oejs.ShutdownMonitor:main: org.eclipse.jetty.server.ShutdownMonitor is deprecated, and has been replaced with org.eclipse.jetty.server.ShutdownService
STOP.PORT=8079
STOP.KEY=xwiki
STOP.EXIT=true
2025-10-02 11:40:29.533:WARN :oejd.DeploymentScanner:main: Does not exist: /usr/lib/xwiki-jetty/environments
2025-10-02 11:40:29.771:WARN :oatud.DigesterFactory:main: The XML schema [XMLSchema.dtd] could not be found. This is very likely to break XML validation if XML validation is enabled.
2025-10-02 11:40:29.771:WARN :oatud.DigesterFactory:main: The XML schema [datatypes.dtd] could not be found. This is very likely to break XML validation if XML validation is enabled.
2025-10-02 11:40:29.772:WARN :oatud.DigesterFactory:main: The XML schema [xml.xsd] could not be found. This is very likely to break XML validation if XML validation is enabled.
2025-10-02 11:40:30.789:WARN :oeje11w.JettyWebXmlConfiguration:main: Error applying file:///usr/lib/xwiki/WEB-INF/jetty-web.xml
2025-10-02 11:40:30.789:WARN :oeje11w.WebAppContext:main: Failed startup of context oeje11w.WebAppContext@255990cc{/xwiki,/xwiki,b=[file:///usr/lib/xwiki/, jar:file:///usr/lib/xwiki/WEB-INF/lib/iscroll-5.2.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-captcha-jcaptcha-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/intlify__core-base-11.1.11.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__runtime-dom-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/scriptaculous-1.9.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/requirejs-2.3.7.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/postcss-8.5.6.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/moment-jdateformatparser-1.2.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-livedata-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue-i18n-11.1.11.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-localization-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__compiler-core-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-index-tree-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/colpick-2.0.2.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/estree-walker-2.0.2.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/jstree-3.3.16.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-bootstrap-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/babel__parser-8.0.0-alpha.13.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/moment-2.30.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/babel__helper-validator-identifier-8.0.0-alpha.13.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/font-awesome-4.7.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/jridgewell__sourcemap-codec-1.5.5.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-search-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__compiler-dom-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/intlify__shared-11.1.11.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/prototype-1.7.3.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/csstype-3.1.3.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__runtime-core-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__compiler-sfc-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__server-renderer-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/bootstrap-switch-3.3.4.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__shared-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/babel__helper-string-parser-8.0.0-alpha.13.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__reactivity-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/less-4.3.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-job-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/babel__types-8.0.0-alpha.13.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/bootstrap-daterangepicker-3.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/picocolors-1.1.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/jquery-ui-1.14.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/intlify__message-compiler-11.1.11.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/selectize.js-0.13.3.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/nanoid-3.3.11.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/source-map-js-1.2.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/Eonasdan-bootstrap-datetimepicker-4.17.49.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__devtools-api-6.6.4.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/bootstrap-select-1.13.18.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/entities-4.5.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/jquery-3.7.1.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/vue__compiler-ssr-3.5.21.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/jquery-ui-touch-punch-0.2.3-2.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/fast-diff-1.3.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/Keypress-2.1.5.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/magic-string-0.30.19.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-tree-webjar-17.8.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/moment-timezone-0.6.0.jar!/META-INF/resources/, jar:file:///usr/lib/xwiki/WEB-INF/lib/xwiki-platform-notifications-webjar-17.8.0.jar!/META-INF/resources/],a=STOPPED,h=oeje11s.SessionHandler@13047d7d{STOPPED}}
java.lang.ClassNotFoundException: org.eclipse.jetty.ee10.webapp.WebAppContext
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)
at org.eclipse.jetty.ee.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:515)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:58)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:537)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:477)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:398)
at org.eclipse.jetty.ee11.webapp.JettyWebXmlConfiguration.lambda$configure$0(JettyWebXmlConfiguration.java:76)
at org.eclipse.jetty.ee.webapp.WebAppClassLoader.runWithHiddenClassAccess(WebAppClassLoader.java:173)
at org.eclipse.jetty.ee11.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:74)
at org.eclipse.jetty.ee11.webapp.Configurations.configure(Configurations.java:505)
at org.eclipse.jetty.ee11.webapp.WebAppContext.configure(WebAppContext.java:480)
at org.eclipse.jetty.ee11.webapp.WebAppContext.startContext(WebAppContext.java:1270)
at org.eclipse.jetty.ee11.servlet.ServletContextHandler.lambda$doStart$0(ServletContextHandler.java:1062)
at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1582)
at org.eclipse.jetty.ee11.servlet.ServletContextHandler.doStart(ServletContextHandler.java:1059)
at org.eclipse.jetty.ee11.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at org.eclipse.jetty.deploy.StandardDeployer.deploy(StandardDeployer.java:118)
at org.eclipse.jetty.deploy.DeploymentScanner.performActions(DeploymentScanner.java:860)
at org.eclipse.jetty.deploy.DeploymentScanner.pathsChanged(DeploymentScanner.java:589)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:918)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:817)
at org.eclipse.jetty.util.Scanner.startScanning(Scanner.java:706)
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:678)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:170)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
at org.eclipse.jetty.deploy.DeploymentScanner.doStart(DeploymentScanner.java:736)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:170)
at org.eclipse.jetty.server.Server.start(Server.java:652)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:545)
at org.eclipse.jetty.server.Server.doStart(Server.java:593)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2108)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
at org.eclipse.jetty.start.Main.start(Main.java:603)
at org.eclipse.jetty.start.Main.main(Main.java:82)
2025-10-02 11:40:30.807:INFO :oxtjl.NotifyListener:main: ----------------------------------
2025-10-02 11:40:30.809:INFO :oxtjl.NotifyListener:main: Server started, you can now open http://MYURL:8080/ in your browser to access your wiki.
2025-10-02 11:40:30.809:INFO :oxtjl.NotifyListener:main: ----------------------------------
where MYURL is the actual URL of the server.
Is java.lang.ClassNotFoundException: org.eclipse.jetty.ee10.webapp.WebAppContext the source of the problem, and if so, do you have any idea how I might fix it?
I’ve temporarily downgraded back to 17.7.0 which still works to give me some time to figure this out.