BundleContext in Web Application

Getting the BundleContext (and with it access to the OSGi container and services) in a normal Java web application is possible in multiple ways:

  • Make a WAB (Web Application Bundle) from the WAR by specifying the web app path in the manifest file and using a bundle activator. The bundle activator has access to the bundle context in via that start and stop methods.
  • The BundleContext is available from the ServletContext attributes (OSGI Enterprise Spec chapter “128.6 Interacting with the OSGi Environment”): BundleContext ctxt = (BundleContext) servletContext.getAttribute(“osgi-bundlecontext”);
  • FrameworkUtil.getBundle(class).getBundleContext()