FileDocCategorySizeDatePackage
Service.javaAPI DocJava SE 6 API31524Tue Jun 10 00:27:16 BST 2008javax.xml.ws

Service

public class Service extends Object
Service objects provide the client view of a Web service.

Service acts as a factory of the following:

  • Proxies for a target service endpoint.
  • Instances of {@link javax.xml.ws.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.

since
JAX-WS 2.0
see
javax.xml.ws.spi.Provider
see
javax.xml.ws.handler.HandlerResolver
see
java.util.concurrent.Executor

Fields Summary
private ServiceDelegate
delegate
Constructors Summary
protected Service(URL wsdlDocumentLocation, QName serviceName)

        delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
                serviceName,
                this.getClass());
    
Methods Summary
public voidaddPort(javax.xml.namespace.QName portName, java.lang.String bindingId, java.lang.String endpointAddress)
Creates a new port for the service. Ports created in this way contain no WSDL port type information and can only be used for creating Dispatchinstances.

param
portName Qualified name for the target service endpoint.
param
bindingId A String identifier of a binding.
param
endpointAddress Address of the target service endpoint as a URI.
throws
WebServiceException If any error in the creation of the port.
see
javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
see
javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
see
javax.xml.ws.http.HTTPBinding#HTTP_BINDING

        delegate.addPort(portName, bindingId, endpointAddress);
    
public static javax.xml.ws.Servicecreate(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)
Creates a Service instance. The specified WSDL document location and service qualified name MUST uniquely identify a wsdl:service element.

param
wsdlDocumentLocation URL for the WSDL document location for the service
param
serviceName QName for the service
throws
WebServiceException If any error in creation of the specified service.

        return new Service(wsdlDocumentLocation, serviceName);
    
public static javax.xml.ws.Servicecreate(javax.xml.namespace.QName serviceName)
Creates a Service instance.

param
serviceName QName for the service
throws
WebServiceException If any error in creation of the specified service

        return new Service(null, serviceName);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.ws.EndpointReference endpointReference, java.lang.Class type, javax.xml.ws.Service$Mode mode, javax.xml.ws.WebServiceFeature features)
Creates a Dispatch instance for use with objects of the user'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.

param
endpointReference The EndpointReference for the target service endpoint that will be invoked by the returned Dispatch object.
param
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.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE when type is SOAPMessage.
param
features An array of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Dispatch instance
throws
WebServiceException
  • If there is any missing WSDL metadata as required by this method.
  • If the endpointReference metadata does not match the serviceName or portName of a WSDL associated with this Service instance.
  • If the portName cannot be determined from the EndpointReference metadata.
  • If any error in the creation of the Dispatch object.
  • If a feature is enabled that is not compatible with this port or is unsupported.
see
javax.xml.transform.Source
see
javax.xml.soap.SOAPMessage
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.createDispatch(endpointReference, type, mode, features);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, javax.xml.ws.Service$Mode mode)
Creates a Dispatch instance for use with JAXB generated objects.

param
portName Qualified name for the target service endpoint
param
context The JAXB context used to marshall and unmarshall messages or message payloads.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body.
return
Dispatch instance.
throws
WebServiceException If any error in the creation of the Dispatch object.
see
javax.xml.bind.JAXBContext

        return delegate.createDispatch(portName, context,  mode);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, javax.xml.ws.Service$Mode mode, javax.xml.ws.WebServiceFeature features)
Creates a Dispatch instance for use with JAXB generated objects.

param
portName Qualified name for the target service endpoint
param
context The JAXB context used to marshall and unmarshall messages or message payloads.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body.
param
features A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Dispatch instance.
throws
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.
see
javax.xml.bind.JAXBContext
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.createDispatch(portName, context, mode, features);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.ws.EndpointReference endpointReference, javax.xml.bind.JAXBContext context, javax.xml.ws.Service$Mode mode, javax.xml.ws.WebServiceFeature features)
Creates a 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.

param
endpointReference The EndpointReference for the target service endpoint that will be invoked by the returned Dispatch object.
param
context The JAXB context used to marshall and unmarshall messages or message payloads.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body.
param
features An array of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Dispatch instance
throws
WebServiceException
  • If there is any missing WSDL metadata as required by this method.
  • If the endpointReference metadata does not match the serviceName or portName of a WSDL associated with this Service instance.
  • If the portName cannot be determined from the EndpointReference metadata.
  • If any error in the creation of the Dispatch object.
  • if a feature is enabled that is not compatible with this port or is unsupported.
see
javax.xml.bind.JAXBContext
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.createDispatch(endpointReference, context, mode, features);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.namespace.QName portName, java.lang.Class type, javax.xml.ws.Service$Mode mode)
Creates a Dispatch instance for use with objects of the user's choosing.

param
portName Qualified name for the target service endpoint
param
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.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE when type is SOAPMessage.
return
Dispatch instance.
throws
WebServiceException If any error in the creation of the Dispatch object.
see
javax.xml.transform.Source
see
javax.xml.soap.SOAPMessage

        return delegate.createDispatch(portName, type, mode);
    
public javax.xml.ws.DispatchcreateDispatch(javax.xml.namespace.QName portName, java.lang.Class type, javax.xml.ws.Service$Mode mode, javax.xml.ws.WebServiceFeature features)
Creates a Dispatch instance for use with objects of the user's choosing.

param
portName Qualified name for the target service endpoint
param
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.
param
mode Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE when type is SOAPMessage.
param
features A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Dispatch instance.
throws
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.
see
javax.xml.transform.Source
see
javax.xml.soap.SOAPMessage
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.createDispatch(portName, type, mode, features);
    
public java.util.concurrent.ExecutorgetExecutor()
Returns the executor for this Serviceinstance. The executor is used for all asynchronous invocations that require callbacks.

return
The java.util.concurrent.Executor to be used to invoke a callback.
see
java.util.concurrent.Executor

        return delegate.getExecutor();
    
public javax.xml.ws.handler.HandlerResolvergetHandlerResolver()
Returns the configured handler resolver.

return
HandlerResolver The HandlerResolver being used by this Service instance, or null if there isn't one.

        return delegate.getHandlerResolver();
    
public TgetPort(javax.xml.namespace.QName portName, java.lang.Class serviceEndpointInterface)
The 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.

param
portName Qualified name of the service endpoint in the WSDL service description.
param
serviceEndpointInterface Service endpoint interface supported by the dynamic proxy instance.
return
Object Proxy instance that supports the specified service endpoint interface.
throws
WebServiceException This exception is thrown in the following cases:
  • If there is an error in creation of the proxy.
  • If there is any missing WSDL metadata as required by this method.
  • If an illegal serviceEndpointInterface or portName is specified.
see
java.lang.reflect.Proxy
see
java.lang.reflect.InvocationHandler

        return delegate.getPort(portName, serviceEndpointInterface);
    
public TgetPort(javax.xml.namespace.QName portName, java.lang.Class serviceEndpointInterface, javax.xml.ws.WebServiceFeature features)
The 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.

param
portName Qualified name of the service endpoint in the WSDL service description.
param
serviceEndpointInterface Service endpoint interface supported by the dynamic proxy instance.
param
features A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Object Proxy instance that supports the specified service endpoint interface.
throws
WebServiceException This exception is thrown in the following cases:
  • If there is an error in creation of the proxy.
  • If there is any missing WSDL metadata as required by this method.
  • If an illegal serviceEndpointInterface or portName is specified.
  • If a feature is enabled that is not compatible with this port or is unsupported.
see
java.lang.reflect.Proxy
see
java.lang.reflect.InvocationHandler
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.getPort(portName, serviceEndpointInterface, features);
    
public TgetPort(java.lang.Class serviceEndpointInterface)
The 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.

param
serviceEndpointInterface Service endpoint interface.
return
Object 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 an illegal. serviceEndpointInterface is specified.

        return delegate.getPort(serviceEndpointInterface);
    
public TgetPort(java.lang.Class serviceEndpointInterface, javax.xml.ws.WebServiceFeature features)
The 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.

param
serviceEndpointInterface Service endpoint interface.
param
features A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
Object 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 an illegal serviceEndpointInterface is specified.
  • If a feature is enabled that is not compatible with this port or is unsupported.
see
WebServiceFeature
since
JAX-WS 2.1

        return delegate.getPort(serviceEndpointInterface, features);
    
public TgetPort(javax.xml.ws.EndpointReference endpointReference, java.lang.Class serviceEndpointInterface, javax.xml.ws.WebServiceFeature features)
The 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.

param
endpointReference The EndpointReference for the target service endpoint that will be invoked by the returned proxy.
param
serviceEndpointInterface Service endpoint interface.
param
features A list of WebServiceFeatures to configure on the proxy. Supported features not in the features parameter will have their default values.
return
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 the endpointReference metadata does not match the serviceName of this Service instance.
  • If a portName cannot be extracted from the WSDL or endpointReference metadata.
  • If an invalid endpointReference is specified.
  • If an invalid serviceEndpointInterface is specified.
  • If a feature is enabled that is not compatible with this port or is unsupported.
since
JAX-WS 2.1

        return delegate.getPort(endpointReference, serviceEndpointInterface, features);
    
public java.util.IteratorgetPorts()
Returns an Iterator for the list of QNames of service endpoints grouped by this service

return
Returns java.util.Iterator with elements of type javax.xml.namespace.QName.
throws
WebServiceException If this Service class does not have access to the required WSDL metadata.

        return delegate.getPorts();
    
public javax.xml.namespace.QNamegetServiceName()
Gets the name of this service.

return
Qualified name of this service

        return delegate.getServiceName();
    
public java.net.URLgetWSDLDocumentLocation()
Gets the location of the WSDL document for this Service.

return
URL for the location of the WSDL document for this service.

        return delegate.getWSDLDocumentLocation();
    
public voidsetExecutor(java.util.concurrent.Executor executor)
Sets the executor for this Service instance. The executor is used for all asynchronous invocations that require callbacks.

param
executor The java.util.concurrent.Executor to be used to invoke a callback.
throws
SecurityException If the instance does not support setting an executor for security reasons (e.g. the necessary permissions are missing).
see
java.util.concurrent.Executor

        delegate.setExecutor(executor);
    
public voidsetHandlerResolver(javax.xml.ws.handler.HandlerResolver handlerResolver)
Sets the 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.

param
handlerResolver The HandlerResolver to use for all subsequently created proxy/dispatch objects.
see
javax.xml.ws.handler.HandlerResolver

        delegate.setHandlerResolver(handlerResolver);