Error - NoClassDefFoundError - org/osgi/framework/SynchronousBundleListener
search cancel

Error - NoClassDefFoundError - org/osgi/framework/SynchronousBundleListener

book

Article ID: 429281

calendar_today

Updated On:

Products

VMware Tanzu Spring Runtime Support Only for Apache Tomcat

Issue/Introduction

Tomcat Application is getting failed after upgrade to 10.1.50.

  • Previous working version: apache-tomcat-10.1.44
  • Latest non-working version; apache-tomcat-10.1.50 

Error - NoClassDefFoundError: org/osgi/framework/SynchronousBundleListener

Caused by: java.lang.NoClassDefFoundError: org/osgi/framework/SynchronousBundleListener
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2510)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:877)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1413)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
        at org.glassfish.jersey.internal.util.ReflectionHelper.getOsgiRegistryInstance(ReflectionHelper.java:1481)
        at org.glassfish.jersey.internal.ServiceFinder.<clinit>(ServiceFinder.java:142)
        at org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory.getAllServletContainerProviders(ServletContainerProviderFactory.java:43)
        at org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer.onStartup(JerseyServletContainerInitializer.java:109)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5169)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        ... 38 more
Caused by: java.lang.ClassNotFoundException: org.osgi.framework.SynchronousBundleListener
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
        ... 51 more

 

Environment

Apache Tomcat 10.1.x

Jersey 3.0

Resolution

Jersey is fully compatible with Apache Tomcat, acting as a JAX-RS reference implementation for building RESTful web services in a servlet container.
 
Key Compatibility and Setup Details:
  • Version Pairing:
    • Tomcat 9: Use Jersey 2.x (e.g., 2.29.1 or 2.30+) for Java EE 8.
    • Tomcat 10.0.x: Use Jersey 3.0.x (Jakarta EE 9).
    • Tomcat 10.1.x: Use Jersey 3.1.x (Jakarta EE 10).
    • JDK Compatibility: Jersey 2.26+ requires JDK 8 or higher, with 2.29+ supporting Java 11.
  • Required Dependencies (Maven/Gradle):
    • jersey-container-servlet (The servlet container).
    • jersey-hk2 (Injection manager, required for Jersey 2.26+).