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()