JAX-WS
v2.2

javax.xml.ws.spi
Class Provider

java.lang.Object
  extended by javax.xml.ws.spi.Provider

public abstract class Provider
extends java.lang.Object

Service provider for ServiceDelegate and Endpoint objects.

Since:
JAX-WS 2.0

Field Summary
static java.lang.String JAXWSPROVIDER_PROPERTY
          A constant representing the property used to lookup the name of a Provider implementation class.
 
Constructor Summary
protected Provider()
          Creates a new instance of Provider
 
Method Summary
abstract  Endpoint createAndPublishEndpoint(java.lang.String address, java.lang.Object implementor)
          Creates and publishes an endpoint object with the specified address and implementation object.
 Endpoint createAndPublishEndpoint(java.lang.String address, java.lang.Object implementor, WebServiceFeature... features)
          Creates and publishes an endpoint object with the specified address, implementation object and web service features.
 Endpoint createEndpoint(java.lang.String bindingId, java.lang.Class<?> implementorClass, Invoker invoker, WebServiceFeature... features)
          Creates an endpoint object with the provided binding, implementation class, invoker and web service features.
abstract  Endpoint createEndpoint(java.lang.String bindingId, java.lang.Object implementor)
          Creates an endpoint object with the provided binding and implementation object.
 Endpoint createEndpoint(java.lang.String bindingId, java.lang.Object implementor, WebServiceFeature... features)
          Creates an endpoint object with the provided binding, implementation object and web service features.
abstract  ServiceDelegate createServiceDelegate(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName, java.lang.Class<? extends Service> serviceClass)
          Creates a service delegate object.
 ServiceDelegate createServiceDelegate(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName, java.lang.Class<? extends Service> serviceClass, WebServiceFeature... features)
          Creates a service delegate object.
abstract  W3CEndpointReference createW3CEndpointReference(java.lang.String address, javax.xml.namespace.QName serviceName, javax.xml.namespace.QName portName, java.util.List<org.w3c.dom.Element> metadata, java.lang.String wsdlDocumentLocation, java.util.List<org.w3c.dom.Element> referenceParameters)
          Factory method to create a W3CEndpointReference.
 W3CEndpointReference createW3CEndpointReference(java.lang.String address, javax.xml.namespace.QName interfaceName, javax.xml.namespace.QName serviceName, javax.xml.namespace.QName portName, java.util.List<org.w3c.dom.Element> metadata, java.lang.String wsdlDocumentLocation, java.util.List<org.w3c.dom.Element> referenceParameters, java.util.List<org.w3c.dom.Element> elements, java.util.Map<javax.xml.namespace.QName,java.lang.String> attributes)
          Factory method to create a W3CEndpointReference.
abstract
<T> T
getPort(EndpointReference endpointReference, java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)
          The getPort method returns a proxy.
static Provider provider()
          Creates a new provider object.
abstract  EndpointReference readEndpointReference(javax.xml.transform.Source eprInfoset)
          read an EndpointReference from the infoset contained in eprInfoset.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JAXWSPROVIDER_PROPERTY

public static final java.lang.String JAXWSPROVIDER_PROPERTY
A constant representing the property used to lookup the name of a Provider implementation class.

See Also:
Constant Field Values
Constructor Detail

Provider

protected Provider()
Creates a new instance of Provider

Method Detail

provider

public static Provider provider()
Creates a new provider object.

The algorithm used to locate the provider subclass to use consists of the following steps:


createServiceDelegate

public abstract ServiceDelegate createServiceDelegate(java.net.URL wsdlDocumentLocation,
                                                      javax.xml.namespace.QName serviceName,
                                                      java.lang.Class<? extends Service> serviceClass)
Creates a service delegate object.

Parameters:
wsdlDocumentLocation - A URL pointing to the WSDL document for the service, or null if there isn't one.
serviceName - The qualified name of the service.
serviceClass - The service class, which MUST be either javax.xml.ws.Service or a subclass thereof.
Returns:
The newly created service delegate.

createServiceDelegate

public ServiceDelegate createServiceDelegate(java.net.URL wsdlDocumentLocation,
                                             javax.xml.namespace.QName serviceName,
                                             java.lang.Class<? extends Service> serviceClass,
                                             WebServiceFeature... features)
Creates a service delegate object.

Parameters:
wsdlDocumentLocation - A URL pointing to the WSDL document for the service, or null if there isn't one.
serviceName - The qualified name of the service.
serviceClass - The service class, which MUST be either javax.xml.ws.Service or a subclass thereof.
features - Web Service features that must be configured on the service. If the provider doesn't understand a feature, it must throw a WebServiceException.
Returns:
The newly created service delegate.
Since:
JAX-WS 2.2

createEndpoint

public abstract Endpoint createEndpoint(java.lang.String bindingId,
                                        java.lang.Object implementor)
Creates an endpoint object with the provided binding and implementation object.

Parameters:
bindingId - A URI specifying the desired binding (e.g. SOAP/HTTP)
implementor - A service implementation object to which incoming requests will be dispatched. The corresponding class MUST be annotated with all the necessary Web service annotations.
Returns:
The newly created endpoint.

createAndPublishEndpoint

public abstract Endpoint createAndPublishEndpoint(java.lang.String address,
                                                  java.lang.Object implementor)
Creates and publishes an endpoint object with the specified address and implementation object.

Parameters:
address - A URI specifying the address and transport/protocol to use. A http: URI MUST result in the SOAP 1.1/HTTP binding being used. Implementations may support other URI schemes.
implementor - A service implementation object to which incoming requests will be dispatched. The corresponding class MUST be annotated with all the necessary Web service annotations.
Returns:
The newly created endpoint.

readEndpointReference

public abstract EndpointReference readEndpointReference(javax.xml.transform.Source eprInfoset)
read an EndpointReference from the infoset contained in eprInfoset.

Parameters:
eprInfoset - infoset for EndpointReference
Returns:
the EndpointReference unmarshalled from eprInfoset. This method never returns null.
Throws:
WebServiceException - If there is an error creating the EndpointReference from the specified eprInfoset.
java.lang.NullPointerException - If the null eprInfoset value is given.
Since:
JAX-WS 2.1

getPort

public abstract <T> T getPort(EndpointReference endpointReference,
                              java.lang.Class<T> serviceEndpointInterface,
                              WebServiceFeature... features)
The getPort method returns a proxy. If there are any reference parameters in the endpointReference, then those reference parameters MUST appear as SOAP headers, indicating them to be reference parameters, on all messages sent to the endpoint. The parameter serviceEndpointInterface specifies the service endpoint interface that is supported by the returned proxy. The parameter endpointReference specifies the endpoint that will be invoked by the returned proxy. In the implementation of this method, the JAX-WS runtime system takes the responsibility of selecting a protocol binding (and a port) and configuring the proxy accordingly from the WSDL metadata of the serviceEndpointInterface and the EndpointReference. For this method to successfully return a proxy, WSDL metadata MUST be available and the endpointReference MUST contain an implementation understood serviceName metadata.

Parameters:
endpointReference - the EndpointReference that will be invoked by the returned proxy.
serviceEndpointInterface - Service endpoint interface
features - A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
Returns:
Object Proxy instance that supports the specified service endpoint interface
Throws:
WebServiceException -
  • If there is an error during creation of the proxy
  • If there is any missing WSDL metadata as required by this method}
  • If this endpointReference is illegal
  • If an illegal serviceEndpointInterface is specified
  • If a feature is enabled that is not compatible with this port or is unsupported.
Since:
JAX-WS 2.1
See Also:
WebServiceFeature

createW3CEndpointReference

public abstract W3CEndpointReference createW3CEndpointReference(java.lang.String address,
                                                                javax.xml.namespace.QName serviceName,
                                                                javax.xml.namespace.QName portName,
                                                                java.util.List<org.w3c.dom.Element> metadata,
                                                                java.lang.String wsdlDocumentLocation,
                                                                java.util.List<org.w3c.dom.Element> referenceParameters)
Factory method to create a W3CEndpointReference.

This method can be used to create a W3CEndpointReference for any endpoint by specifying the address property along with any other desired properties. This method can also be used to create a W3CEndpointReference for an endpoint that is published by the same Java EE application. To do so the address property can be provided or this method can automatically determine the address of an endpoint that is published by the same Java EE application and is identified by the serviceName and portName propeties. If the address is null and the serviceName and portName do not identify an endpoint published by the same Java EE application, a javax.lang.IllegalStateException MUST be thrown.

Parameters:
address - Specifies the address of the target endpoint
serviceName - Qualified name of the service in the WSDL.
portName - Qualified name of the endpoint in the WSDL.
metadata - A list of elements that should be added to the W3CEndpointReference instances wsa:metadata element.
wsdlDocumentLocation - URL for the WSDL document location for the service.
referenceParameters - Reference parameters to be associated with the returned EndpointReference instance.
Returns:
the W3CEndpointReference created from serviceName, portName, metadata, wsdlDocumentLocation and referenceParameters. This method never returns null.
Throws:
java.lang.IllegalStateException -
  • If the address, serviceName and portName are all null.
  • If the serviceName service is null and the portName is NOT null.
  • If the address property is null and the serviceName and portName do not specify a valid endpoint published by the same Java EE application.
  • If the serviceNameis NOT null and is not present in the specified WSDL.
  • If the portName port is not null and it is not present in serviceName service in the WSDL.
  • If the wsdlDocumentLocation is NOT null and does not represent a valid WSDL.
WebServiceException - If an error occurs while creating the W3CEndpointReference.
Since:
JAX-WS 2.1

createW3CEndpointReference

public W3CEndpointReference createW3CEndpointReference(java.lang.String address,
                                                       javax.xml.namespace.QName interfaceName,
                                                       javax.xml.namespace.QName serviceName,
                                                       javax.xml.namespace.QName portName,
                                                       java.util.List<org.w3c.dom.Element> metadata,
                                                       java.lang.String wsdlDocumentLocation,
                                                       java.util.List<org.w3c.dom.Element> referenceParameters,
                                                       java.util.List<org.w3c.dom.Element> elements,
                                                       java.util.Map<javax.xml.namespace.QName,java.lang.String> attributes)
Factory method to create a W3CEndpointReference. Using this method, a W3CEndpointReference instance can be created with extension elements, and attributes. Provider implementations must override the default implementation.

This method can be used to create a W3CEndpointReference for any endpoint by specifying the address property along with any other desired properties. This method can also be used to create a W3CEndpointReference for an endpoint that is published by the same Java EE application. To do so the address property can be provided or this method can automatically determine the address of an endpoint that is published by the same Java EE application and is identified by the serviceName and portName propeties. If the address is null and the serviceName and portName do not identify an endpoint published by the same Java EE application, a javax.lang.IllegalStateException MUST be thrown.

Parameters:
address - Specifies the address of the target endpoint
interfaceName - the wsam:InterfaceName element in the wsa:Metadata element.
serviceName - Qualified name of the service in the WSDL.
portName - Qualified name of the endpoint in the WSDL.
metadata - A list of elements that should be added to the W3CEndpointReference instances wsa:metadata element.
wsdlDocumentLocation - URL for the WSDL document location for the service.
referenceParameters - Reference parameters to be associated with the returned EndpointReference instance.
elements - extension elements to be associated with the returned EndpointReference instance.
attributes - extension attributes to be associated with the returned EndpointReference instance.
Returns:
the W3CEndpointReference created from serviceName, portName, metadata, wsdlDocumentLocation and referenceParameters. This method never returns null.
Throws:
java.lang.IllegalStateException -
  • If the address, serviceName and portName are all null.
  • If the serviceName service is null and the portName is NOT null.
  • If the address property is null and the serviceName and portName do not specify a valid endpoint published by the same Java EE application.
  • If the serviceNameis NOT null and is not present in the specified WSDL.
  • If the portName port is not null and it is not present in serviceName service in the WSDL.
  • If the wsdlDocumentLocation is NOT null and does not represent a valid WSDL.
  • If the wsdlDocumentLocation is NOT null but wsdli:wsdlLocation's namespace name cannot be got from the available metadata.
WebServiceException - If an error occurs while creating the W3CEndpointReference.
Since:
JAX-WS 2.2

createAndPublishEndpoint

public Endpoint createAndPublishEndpoint(java.lang.String address,
                                         java.lang.Object implementor,
                                         WebServiceFeature... features)
Creates and publishes an endpoint object with the specified address, implementation object and web service features. Provider implementations must override the default implementation.

Parameters:
address - A URI specifying the address and transport/protocol to use. A http: URI MUST result in the SOAP 1.1/HTTP binding being used. Implementations may support other URI schemes.
implementor - A service implementation object to which incoming requests will be dispatched. The corresponding class MUST be annotated with all the necessary Web service annotations.
features - A list of WebServiceFeatures to configure on the endpoint. Supported features not in the features parameter will have their default values.
Returns:
The newly created endpoint.
Since:
JAX-WS 2.2

createEndpoint

public Endpoint createEndpoint(java.lang.String bindingId,
                               java.lang.Object implementor,
                               WebServiceFeature... features)
Creates an endpoint object with the provided binding, implementation object and web service features. Provider implementations must override the default implementation.

Parameters:
bindingId - A URI specifying the desired binding (e.g. SOAP/HTTP)
implementor - A service implementation object to which incoming requests will be dispatched. The corresponding class MUST be annotated with all the necessary Web service annotations.
features - A list of WebServiceFeatures to configure on the endpoint. Supported features not in the features parameter will have their default values.
Returns:
The newly created endpoint.
Since:
JAX-WS 2.2

createEndpoint

public Endpoint createEndpoint(java.lang.String bindingId,
                               java.lang.Class<?> implementorClass,
                               Invoker invoker,
                               WebServiceFeature... features)
Creates an endpoint object with the provided binding, implementation class, invoker and web service features. Containers typically use this to create Endpoint objects. Provider implementations must override the default implementation.

Parameters:
bindingId - A URI specifying the desired binding (e.g. SOAP/HTTP). Can be null.
implementorClass - A service implementation class that MUST be annotated with all the necessary Web service annotations.
invoker - that does the actual invocation on the service instance.
features - A list of WebServiceFeatures to configure on the endpoint. Supported features not in the features parameter will have their default values.
Returns:
The newly created endpoint.
Since:
JAX-WS 2.2

JAX-WS
v2.2


Comments to: jsr-224-comments@jcp.org
More information at: Metro Web Services Overview
Copyright © 2005, 2011, Oracle and/or its affiliates. All rights reserved.