public class Service extends Object
Service objects provide the client view of a Web service.
Service acts as a factory of the following:
Dispatch for dynamic message-oriented invocation of a remote operation. The ports available on a service can be enumerated using the getPorts method. Alternatively, you can pass a service endpoint interface to the unary getPort method and let the runtime select a compatible port.
Handler chains for all the objects created by a Service can be set by means of a HandlerResolver.
An Executor may be set on the service in order to gain better control over the threads used to dispatch asynchronous callbacks. For instance, thread pooling with certain parameters can be enabled by creating a ThreadPoolExecutor and registering it with the service.
Provider,
HandlerResolver,
Executor
| Modifier and Type | Class and Description |
|---|---|
static class |
Service
The orientation of a dynamic client or service.
|
| Modifier | Constructor and Description |
|---|---|
protected |
Service(URL
|
protected |
Service(URL
|
| Modifier and Type | Method and Description |
|---|---|
void |
addPort(QName
Creates a new port for the service.
|
static Service |
create(QName
Creates a
Service instance.
|
static Service |
create(QName
Creates a
Service instance.
|
static Service |
create(URL
Creates a
Service instance.
|
static Service |
create(URL
Creates a
Service instance.
|
<T> Dispatch |
createDispatch(EndpointReference
Creates a
Dispatch instance for use with objects of the client's choosing.
|
Dispatch |
createDispatch(EndpointReference
Creates a
Dispatch instance for use with JAXB generated objects.
|
<T> Dispatch |
createDispatch(QName
Creates a
Dispatch instance for use with objects of the client's choosing.
|
<T> Dispatch |
createDispatch(QName
Creates a
Dispatch instance for use with objects of the client's choosing.
|
Dispatch |
createDispatch(QName
Creates a
Dispatch instance for use with JAXB generated objects.
|
Dispatch |
createDispatch(QName
Creates a
Dispatch instance for use with JAXB generated objects.
|
Executor |
getExecutor()
Returns the executor for this
Serviceinstance.
|
HandlerResolver |
getHandlerResolver()
Returns the configured handler resolver.
|
<T> T |
getPort(Class
The
getPort method returns a proxy.
|
<T> T |
getPort(Class
The
getPort method returns a proxy.
|
<T> T |
getPort(EndpointReference
The
getPort method returns a proxy.
|
<T> T |
getPort(QName
The
getPort method returns a proxy.
|
<T> T |
getPort(QName
The
getPort method returns a proxy.
|
Iterator |
getPorts()
Returns an
Iterator for the list of
QNames of service endpoints grouped by this service
|
QName |
getServiceName()
Gets the name of this service.
|
URL |
getWSDLDocumentLocation()
Gets the location of the WSDL document for this Service.
|
void |
setExecutor(Executor
Sets the executor for this
Service instance.
|
void |
setHandlerResolver(HandlerResolver
Sets the
HandlerResolver for this
Service instance.
|
protected Service(URLwsdlDocumentLocation, QName serviceName, WebServiceFeature ... features)
public <T> T getPort(QNameportName, Class <T> serviceEndpointInterface)
getPort method returns a proxy. A service client uses this proxy to invoke operations on the target service endpoint. The
serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy instance.
portName - Qualified name of the service endpoint in the WSDL service description.
serviceEndpointInterface - Service endpoint interface supported by the dynamic proxy instance.
WebServiceException - This exception is thrown in the following cases:
serviceEndpointInterface or portName is specified. Proxy,
InvocationHandler
public <T> T getPort(QNameportName, Class <T> serviceEndpointInterface, WebServiceFeature ... features)
getPort method returns a proxy. A service client uses this proxy to invoke operations on the target service endpoint. The
serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy instance.
portName - Qualified name of the service endpoint in the WSDL service description.
serviceEndpointInterface - Service endpoint interface supported by the dynamic proxy instance.
features - A list of WebServiceFeatures to configure on the proxy. Supported features not in the
features parameter will have their default values.
WebServiceException - This exception is thrown in the following cases:
serviceEndpointInterface or portName is specified. Proxy,
InvocationHandler,
WebServiceFeature
public <T> T getPort(Class<T> serviceEndpointInterface)
getPort method returns a proxy. The parameter
serviceEndpointInterface specifies the service endpoint interface that is supported 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. The returned proxy should not be reconfigured by the client.
serviceEndpointInterface - Service endpoint interface.
WebServiceException -
serviceEndpointInterface is specified. public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature ... features)
getPort method returns a proxy. The parameter
serviceEndpointInterface specifies the service endpoint interface that is supported 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. The returned proxy should not be reconfigured by the client.
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.
WebServiceException -
serviceEndpointInterface is specified. WebServiceFeature
public <T> T getPort(EndpointReferenceendpointReference, Class <T> serviceEndpointInterface, WebServiceFeature ... features)
getPort method returns a proxy. The parameter
endpointReference specifies the endpoint that will be invoked by the returned 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
endpointReference's address MUST be used for invocations on the endpoint. The parameter
serviceEndpointInterface specifies the service endpoint interface that is supported 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 associated with this
Service instance or from the metadata from the
endpointReference. If this
Service instance has a WSDL and the
endpointReference metadata also has a WSDL, then the WSDL from this instance MUST be used. If this
Service instance does not have a WSDL and the
endpointReference does have a WSDL, then the WSDL from the
endpointReference MAY be used. The returned proxy should not be reconfigured by the client. If this
Service instance has a known proxy port that matches the information contained in the WSDL, then that proxy is returned, otherwise a WebServiceException is thrown.
Calling this method has the same behavior as the following
port = service.getPort(portName, serviceEndpointInterface);
where the
portName is retrieved from the metadata of the
endpointReference or from the
serviceEndpointInterface and the WSDL associated with this
Service instance.
endpointReference - The
EndpointReference for the target service endpoint 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.
WebServiceException -
endpointReference metadata does not match the serviceName of this Service instance. portName cannot be extracted from the WSDL or endpointReference metadata. endpointReference is specified. serviceEndpointInterface is specified. public void addPort(QNameportName, String bindingId, String endpointAddress)
Dispatchinstances.
portName - Qualified name for the target service endpoint.
bindingId - A String identifier of a binding.
endpointAddress - Address of the target service endpoint as a URI.
WebServiceException - If any error in the creation of the port.
SOAPBinding.SOAP11HTTP_BINDING ,
SOAPBinding.SOAP12HTTP_BINDING ,
HTTPBinding.HTTP_BINDING
public <T> Dispatch<T> createDispatch(QName portName, Class <T> type, Service .Mode mode)
Dispatch instance for use with objects of the client's choosing.
portName - Qualified name for the target service endpoint
type - The class of object used for messages or message payloads. Implementations are required to support
javax.xml.transform.Source,
javax.xml.soap.SOAPMessage and
javax.activation.DataSource, depending on the binding in use.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE when type is SOAPMessage.
WebServiceException - If any error in the creation of the
Dispatch object.
Source,
SOAPMessage
public <T> Dispatch<T> createDispatch(QName portName, Class <T> type, Service .Mode mode, WebServiceFeature ... features)
Dispatch instance for use with objects of the client's choosing.
portName - Qualified name for the target service endpoint
type - The class of object used for messages or message payloads. Implementations are required to support
javax.xml.transform.Source and
javax.xml.soap.SOAPMessage.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body. Mode MUST be
MESSAGE when type is
SOAPMessage.
features - A list of
WebServiceFeatures to configure on the proxy. Supported features not in the
features parameter will have their default values.
WebServiceException - If any error in the creation of the
Dispatch object or if a feature is enabled that is not compatible with this port or is unsupported.
Source,
SOAPMessage,
WebServiceFeature
public <T> Dispatch<T> createDispatch(EndpointReference endpointReference, Class <T> type, Service .Mode mode, WebServiceFeature ... features)
Dispatch instance for use with objects of the client's choosing. 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
endpointReference's address MUST be used for invocations on the endpoint. 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 dispatch accordingly from the WSDL associated with this
Service instance or from the metadata from the
endpointReference. If this
Service instance has a WSDL and the
endpointReference also has a WSDL in its metadata, then the WSDL from this instance MUST be used. If this
Service instance does not have a WSDL and the
endpointReference does have a WSDL, then the WSDL from the
endpointReference MAY be used. An implementation MUST be able to retrieve the
portName from the
endpointReference metadata.
This method behaves the same as calling
dispatch = service.createDispatch(portName, type, mode, features);
where the
portName is retrieved from the WSDL or
EndpointReference metadata.
endpointReference - The
EndpointReference for the target service endpoint that will be invoked by the returned
Dispatch object.
type - The class of object used to messages or message payloads. Implementations are required to support
javax.xml.transform.Source and
javax.xml.soap.SOAPMessage.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body. Mode MUST be
MESSAGE when type is
SOAPMessage.
features - An array of
WebServiceFeatures to configure on the proxy. Supported features not in the
features parameter will have their default values.
WebServiceException -
endpointReference metadata does not match the serviceName or portName of a WSDL associated with this Service instance. portName cannot be determined from the EndpointReference metadata. Dispatch object. Source,
SOAPMessage,
WebServiceFeature
public Dispatch<Object > createDispatch(QName portName, JAXBContext context, Service .Mode mode)
Dispatch instance for use with JAXB generated objects.
portName - Qualified name for the target service endpoint
context - The JAXB context used to marshall and unmarshall messages or message payloads.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body.
WebServiceException - If any error in the creation of the
Dispatch object.
JAXBContext
public Dispatch<Object > createDispatch(QName portName, JAXBContext context, Service .Mode mode, WebServiceFeature ... features)
Dispatch instance for use with JAXB generated objects.
portName - Qualified name for the target service endpoint
context - The JAXB context used to marshall and unmarshall messages or message payloads.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body.
features - A list of
WebServiceFeatures to configure on the proxy. Supported features not in the
features parameter will have their default values.
WebServiceException - If any error in the creation of the
Dispatch object or if a feature is enabled that is not compatible with this port or is unsupported.
JAXBContext,
WebServiceFeature
public Dispatch<Object > createDispatch(EndpointReference endpointReference, JAXBContext context, Service .Mode mode, WebServiceFeature ... features)
Dispatch instance for use with JAXB generated objects. 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
endpointReference's address MUST be used for invocations on the endpoint. 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 dispatch accordingly from the WSDL associated with this
Service instance or from the metadata from the
endpointReference. If this
Service instance has a WSDL and the
endpointReference also has a WSDL in its metadata, then the WSDL from this instance MUST be used. If this
Service instance does not have a WSDL and the
endpointReference does have a WSDL, then the WSDL from the
endpointReference MAY be used. An implementation MUST be able to retrieve the
portName from the
endpointReference metadata.
This method behavies the same as calling
dispatch = service.createDispatch(portName, context, mode, features);
where the
portName is retrieved from the WSDL or
endpointReference metadata.
endpointReference - The
EndpointReference for the target service endpoint that will be invoked by the returned
Dispatch object.
context - The JAXB context used to marshall and unmarshall messages or message payloads.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the client will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the client will work with SOAP messages or the contents of a SOAP body.
features - An array of
WebServiceFeatures to configure on the proxy. Supported features not in the
features parameter will have their default values.
WebServiceException -
endpointReference metadata does not match the serviceName or portName of a WSDL associated with this Service instance. portName cannot be determined from the EndpointReference metadata. Dispatch object. JAXBContext,
WebServiceFeature
public QNamegetServiceName()
public Iterator<QName > getPorts()
Iterator for the list of
QNames of service endpoints grouped by this service
java.util.Iterator with elements of type
javax.xml.namespace.QName.
WebServiceException - If this Service class does not have access to the required WSDL metadata.
public URLgetWSDLDocumentLocation()
public HandlerResolvergetHandlerResolver()
HandlerResolver being used by this
Service instance, or
null if there isn't one.
public void setHandlerResolver(HandlerResolverhandlerResolver)
HandlerResolver for this
Service instance.
The handler resolver, if present, will be called once for each proxy or dispatch instance that is created, and the handler chain returned by the resolver will be set on the instance.
handlerResolver - The
HandlerResolver to use for all subsequently created proxy/dispatch objects.
HandlerResolver
public ExecutorgetExecutor()
Serviceinstance. The executor is used for all asynchronous invocations that require callbacks.
java.util.concurrent.Executor to be used to invoke a callback.
Executor
public void setExecutor(Executorexecutor)
Service instance. The executor is used for all asynchronous invocations that require callbacks.
executor - The
java.util.concurrent.Executor to be used to invoke a callback.
SecurityException - If the instance does not support setting an executor for security reasons (e.g. the necessary permissions are missing).
Executor
public static Servicecreate(URL wsdlDocumentLocation, QName serviceName)
Service instance. The specified WSDL document location and service qualified name MUST uniquely identify a
wsdl:service element.
wsdlDocumentLocation -
URL for the WSDL document location for the service
serviceName -
QName for the service
WebServiceException - If any error in creation of the specified service.
public static Servicecreate(URL wsdlDocumentLocation, QName serviceName, WebServiceFeature ... features)
Service instance. The created instance is configured with the web service features. The specified WSDL document location and service qualified name MUST uniquely identify a
wsdl:service element.
wsdlDocumentLocation -
URL for the WSDL document location for the service
serviceName -
QName for the service
features - Web Service features that must be configured on the service. If the provider doesn't understand a feature, it must throw a WebServiceException.
WebServiceException - If any error in creation of the specified service.
public static Servicecreate(QName serviceName)
Service instance.
serviceName -
QName for the service
WebServiceException - If any error in creation of the specified service
public static Servicecreate(QName serviceName, WebServiceFeature ... features)
Service instance. The created instance is configured with the web service features.
serviceName -
QName for the service
features - Web Service features that must be configured on the service. If the provider doesn't understand a feature, it must throw a WebServiceException.
WebServiceException - If any error in creation of the specified service