Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
31.4. Publishing a Service in an OSGi Container
Overview
The bundle activator interface
org.osgi.framework.BundleActivator
interface. The BundleActivator
interface, shown in Example 31.4, “Bundle Activator Interface”, it has two methods that need to be implemented.
Example 31.4. Bundle Activator Interface
interface BundleActivator { public void start(BundleContext context) throws java.lang.Exception; public void stop(BundleContext context) throws java.lang.Exception; }
start()
method is called by the container when it starts the bundle. This is where you instantiate and publish the endpoints.
stop()
method is called by the container when it stops the bundle. This is where you would stop the endpoints.
Implementing the start method
- Instantiate an
javax.xml.ws.Endpoint
object for the service provider. - Create an optional server context to use when publishing the service provider.
- Publish the service provider using one of the
publish()
methods.
Example 31.5. Bundle Activator Start Method for Publishing an Endpoint
package com.widgetvendor.osgi; import javax.xml.ws.Endpoint; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class widgetActivator implements BundleActivator { private Endpoint endpt; ... public void start(BundleContext context) { 1 WidgetOrderImpl impl = new WidgetOrderImpl(); 2 endpt = Endpoint.create(impl); 3 endpt.publish("http://localhost:9000/SoapContext/SoapPort"); } ... }
Implementing the stop method
Example 31.6. Bundle Activator Stop Method for Stopping an Endpoint
package com.widgetvendor.osgi; import javax.xml.ws.Endpoint; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class widgetActivator implements BundleActivator { private Endpoint endpt; ... public void stop(BundleContext context) { endpt.stop(); } ... }
Informing the container
com.widgetvendor.osgi.widgetActivator
.
Example 31.7. Bundle Activator Manifest Entry
Bundle-Activator: com.widgetvendor.osgi.widgetActivator