Jetty12 with nxmc-6.2.4.war | NoClassDefFoundError: javax/servlet
-
Hi,
I'm trying to upgrade from 6.2.1 to 6.2.4
While the upgrade of the applications seems to ok, the webserver can't deploy the war-file.Shouldn't jakarta be referenced instead of javax?
java -jar /opt/jetty-home-12.0.39/start.jar --list-module
Enabled Modules: ---------------- 0) alpn-java transitive provider of alpn-impl for alpn 1) resources transitive provider of resources for logging-logback 2) logging/slf4j dynamic dependency of logging-logback transitive provider of logging/slf4j for logging-logback 3) logging-logback ${jetty.base}/start.d/logging-logback.ini 4) bytebufferpool transitive provider of bytebufferpool for server ini template available with --add-modules=bytebufferpool 5) threadpool transitive provider of threadpool for server ini template available with --add-modules=threadpool 6) server ${jetty.base}/start.d/server.ini 7) ssl ${jetty.base}/start.d/ssl.ini 8) alpn transitive provider of alpn for http2 ini template available with --add-modules=alpn 9) client transitive provider of client for websocket-core-client 10) deploy transitive provider of deploy for ee10-deploy 11) sessions transitive provider of sessions for ee10-servlet ini template available with --add-modules=sessions 12) ee10-servlet transitive provider of ee10-servlet for ee10-webapp transitive provider of ee10-servlet for ee10-security 13) security transitive provider of security for ee10-security 14) ee10-security transitive provider of ee10-security for ee10-webapp transitive provider of ee10-security for ee10-plus 15) ee-webapp transitive provider of ee-webapp for ee10-webapp ini template available with --add-modules=ee-webapp 16) ee10-webapp transitive provider of ee10-webapp for ee10-plus transitive provider of ee10-webapp for ee10-deploy ini template available with --add-modules=ee10-webapp 17) plus ${jetty.base}/start.d/plus.ini 18) jndi transitive provider of jndi for ee10-plus 19) ee10-plus transitive provider of ee10-plus for ee10-annotations 20) ee10-annotations transitive provider of ee10-annotations for ee10-websocket-jetty transitive provider of ee10-annotations for ee10-websocket-jakarta 21) ee10-deploy ${jetty.base}/start.d/ee10-deploy.ini 22) websocket-core-client transitive provider of websocket-core-client for ee10-websocket-jakarta 23) websocket-core-server transitive provider of websocket-core-server for websocket-jetty transitive provider of websocket-core-server for ee10-websocket-jakarta 24) ee10-websocket-jakarta ${jetty.base}/start.d/ee10-websocket-jakarta.ini 25) websocket-jetty transitive provider of websocket-jetty for ee10-websocket-jetty 26) ee10-websocket-jetty ${jetty.base}/start.d/ee10-websocket-jetty.ini 27) gzip ${jetty.base}/start.d/gzip.ini 28) http ${jetty.base}/start.d/http.ini 29) http2 ${jetty.base}/start.d/http2.ini 30) https ${jetty.base}/start.d/https.ini 31) work ${jetty.base}/start.d/work.inijournalctl jetty.service:
Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.348:INFO :oejs.Server:main: jetty-12.0.39; built: 2026-09-04T08:12:14.620Z; git: 23f845b712e7ab5aa7cee1bdec31fadd308b0fd8; jvm 19.0.2+7-Ubuntu-0ubuntu322.04 Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.369:INFO :oejdp.ScanningAppProvider:main: Deployment monitor ee10 in [file:///usr/share/jetty-base/webapps/] at intervals 0s Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.374:INFO :oejd.DeploymentManager:main: addApp: App@4ef37659[ee10,null,/usr/share/jetty-base/webapps/nxmc-6.2.4.war] Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.547:INFO :oejew.StandardDescriptorProcessor:main: NO JSP Support for /nxmc-6.2.4, did not find org.eclipse.jetty.ee10.jsp.JettyJspServlet Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.559:INFO :oejsh.ContextHandler:main: Started oeje10w.WebAppContext@3e44f2a5{NetXMS REST API,/nxmc-6.2.4,b=file:///tmp/jetty-0_0_0_0-8080-nxmc-6_2_4_war-_nxmc-6_2_4-any Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.570:WARN :oejew.WebAppContext:main: Failed startup of context oeje10w.WebAppContext@3e44f2a5{NetXMS REST API,/nxmc-6.2.4,b=file:///tmp/jetty-0_0_0_0-8080-nxmc-6_2_4_war-_nxmc-6_2_4-any-4-4077838918963996153/webapp/,a=AVAILABLE,h=oeje10s.SessionHandler@295cf707{STARTED}}{/usr/share/jetty-base/webapps/nxmc-6.2.4.war} Sep 08 12:27:23 <servername> java[259854]: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet <- content cut due to character limit -> Sep 08 12:27:23 <servername> java[259854]: at org.eclipse.jetty.start.Main.main(Main.java:82) Sep 08 12:27:23 <servername> java[259854]: Caused by: Sep 08 12:27:23 <servername> java[259854]: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet <- content cut due to character limit -> Sep 08 12:27:23 <servername> java[259854]: at org.eclipse.jetty.start.Main.main(Main.java:82) Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.572:INFO :oejdp.ScanningAppProvider:main: Deployment monitor ee8 in [file:///usr/share/jetty-base/webapps/] at intervals 0s Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.573:INFO :oejs.DefaultSessionIdManager:main: Session workerName=node0 Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.580:INFO :oejs.AbstractConnector:main: Started ServerConnector@400fd762{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} Sep 08 12:27:23 <servername> java[259854]: 2026-09-08 12:27:23.587:INFO :oejs.Server:main: Started oejs.Server@23348b5d{STARTING}[12.0.39,sto=0] @934ms -
Hi,
nxmc is already jakarta — it's built against jakarta.servlet-api 6.0 and its web.xml declares Jakarta EE 10, so ee10 in your setup is correct. What's failing is that the file you deployed as nxmc-6.2.4.war is not the web UI, it's the Legacy Web API war (netxms-websvc). That one is still javax/EE8 and under ee10 it fails exactly like this.
Two things in your log point at it: the missing class is javax/servlet/http/HttpServlet, which nxmc has no reference to at all, and the context starts as "NetXMS REST API" — that display name comes from the API war's web.xml, the web UI war has no display name.
Check with:
unzip -p /usr/share/jetty-base/webapps/nxmc-6.2.4.war WEB-INF/web.xml | head -8The web UI war has xmlns="https://jakarta.ee/xml/ns/jakartaee" and version="6.0". What you have will show <display-name>NetXMS REST API</display-name> and version="2.4".
Re-download nxmc-6.2.4.war from the Web Interface Binaries section — the two files sit next to each other there — and it deploys into your existing ee10 setup unchanged.
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login