29.2. APIs Used to Publish a Service
javax.xml.ws.Enddpointclass does the work of publishing a JAX-WS service provider. To publishing an endpoint do the following:
- Create an
Endpointobject for your service provider.
- Publish the endpoint.
- Stop the endpoint when application shuts down.
Endpointclass provides methods for creating and publishing service providers. It also provides a method that can create and publish a service provider in a single method call.
Instantiating an service provider
A service provider is instantiated using an
Endpointobject. You instantiate an
Endpointobject for your service provider using one of the following methods:
static Endpoint create(Object implementor);This
create()method returns an
Endpointfor the specified service implementation. The
Endpointobject is created using the information provided by the implementation class'
javax.xml.ws.BindingTypeannotation, if it is present. If the annotation is not present, the
Endpointuses a default SOAP 1.1/HTTP binding.
static Endpoint create(URI bindingID,
create()method returns an
Endpointobject for the specified implementation object using the specified binding. This method overrides the binding information provided by the
javax.xml.ws.BindingTypeannotation, if it is present. If the
bindingIDcannot be resolved, or it is
null, the binding specified in the
javax.xml.ws.BindingTypeis used to create the
Endpoint. If neither the
javax.xml.ws.BindingTypecan be used, the
Endpointis created using a default SOAP 1.1/HTTP binding.
static Endpoint publish(String address,
publish()method creates an
Endpointobject for the specified implementation, and publishes it. The binding used for the
Endpointobject is determined by the URL scheme of the provided
address. The list of bindings available to the implementation are scanned for a binding that supports the URL scheme. If one is found the
Endpointobject is created and published. If one is not found, the method fails.TipUsing
publish()is the same as invoking one of the
create()methods, and then invoking the
publish()method used in publish to an address.
The implementation object passed to any of the
Endpointcreation methods must either be an instance of a class annotated with
javax.jws.WebServiceand meeting the requirements for being an SEI implementation or it must be an instance of a class annotated with
javax.xml.ws.WebServiceProviderand implementing the
Publishing a service provider
You can publish a service provider using either of the following
void publish(String address);This
publish()method publishes the service provider at the address specified.ImportantThe
address's URL scheme must be compatible with one of the service provider's bindings.
void publish(Object serverContext);This
publish()method publishes the service provider based on the information provided in the specified server context. The server context must define an address for the endpoint, and the context must also be compatible with one of the service provider's available bindings.
Stopping a published service provider
When the service provider is no longer needed you should stop it using its
stop()method, shown in Example 29.1, “Method for Stopping a Published Endpoint”, shuts down the endpoint and cleans up any resources it is using.
Example 29.1. Method for Stopping a Published Endpoint
Once the endpoint is stopped it cannot be republished.