NoClassDefFoundError of OSGI class SynchronousBundleListener for Tyrus initialization
Robert von Burg <[email protected]> Tue, 10 Feb 2026 15:35:03 +0000
| Newsgroups | gmane.comp.jakarta.tomcat.user |
|---|---|
| Message-ID | <ZRH2PFD526FE413CAE5C1530EEF97947FB4DF62A@ZRH2PFD526FE413.CHEP278.PROD.OUTLOOK.COM> |
Dear mailing list
Since upgrading to Tomcat 10.1.50 and .52, our REST endpoints don't deploy anymore. We get the following exception:
10-Feb-2026 15:33:33.415 SEVERE [http-nio-80-exec-10] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.tyrus.core.ServiceFinder
at org.glassfish.tyrus.core.ComponentProviderService.create(ComponentProviderService.java:60)
at org.glassfish.tyrus.core.TyrusServerEndpointConfigurator.lambda$new$0(TyrusServerEndpointConfigurator.java:43)
at org.glassfish.tyrus.core.collection.Values$LazyValueImpl.get(Values.java:190)
at org.glassfish.tyrus.core.TyrusServerEndpointConfigurator.getEndpointInstance(TyrusServerEndpointConfigurator.java:161)
at jakarta.websocket.server.ServerEndpointConfig$Configurator.getEndpointInstance(ServerEndpointConfig.java:230)
at org.apache.tomcat.websocket.WsSession.<init>(WsSession.java:241)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:124)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:945)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1775)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: org/osgi/framework/SynchronousBundleListener [in thread "http-nio-80-exec-1"]
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:2359)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2224)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1338)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
at org.glassfish.tyrus.core.ReflectionHelper.getOsgiRegistryInstance(ReflectionHelper.java:806)
at org.glassfish.tyrus.core.ServiceFinder.<clinit>(ServiceFinder.java:139)
... 14 more
Our application uses Jersey 3.1.1. Up to Tomcat 10.1.49 all was good, but since upgrading we get the above mentioned exception when the endpoint is being deployed.
When I compare the Tomcat versions, I found that the newest versions include a lot of OSGI manifests.
Does anyone know how I can fix this issue, or is anyone aware of it? I can't really find anything of help in the change logs.
Kind regards
Robert
--
Robert von Burg <[email protected]>
dipl. Informatiker in Softwareentwicklung HF / pBac-Eng ODEC
software development
system & network administration
https://strolch.li