Java EE 5 SDK

javax.xml.ws.spi
Class ServiceDelegate

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

public abstract class ServiceDelegate
extends Object

Service delegates are used internally by Service objects to allow pluggability of JAX-WS implementations.

Every Service object has its own delegate, created using the javax.xml.ws.Provider#createServiceDelegate method. A Service object delegates all of its instance methods to its delegate.

Since:
JAX-WS 2.0
See Also:
Service, Provider

Constructor Summary
protected ServiceDelegate()
           
 
Method Summary
abstract  void addPort(QName portName, String bindingId, String endpointAddress)
          Creates a new port for the service.
abstract
<T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode)
          Creates a Dispatch instance for use with objects of the users choosing.
abstract  Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode)
          Creates a Dispatch instance for use with JAXB generated objects.
abstract  Executor getExecutor()
          Returns the executor for this Serviceinstance.
abstract  HandlerResolver getHandlerResolver()
          Returns the configured handler resolver.
abstract
<T> T
getPort(Class<T> serviceEndpointInterface)
          The getPort method returns a stub.
abstract
<T> T
getPort(QName portName, Class<T> serviceEndpointInterface)
          The getPort method returns a stub.
abstract  Iterator<QName> getPorts()
          Returns an Iterator for the list of QNames of service endpoints grouped by this service
abstract  QName getServiceName()
          Gets the name of this service.
abstract  URL getWSDLDocumentLocation()
          Gets the location of the WSDL document for this Service.
abstract  void setExecutor(Executor executor)
          Sets the executor for this Service instance.
abstract  void setHandlerResolver(HandlerResolver handlerResolver)
          Sets the HandlerResolver for this Service instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServiceDelegate

protected ServiceDelegate()
Method Detail

getPort

public abstract <T> T getPort(QName portName,
                              Class<T> serviceEndpointInterface)
The getPort method returns a stub. A service client uses this stub to invoke operations on the target service endpoint. The serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy or stub instance.

Parameters:
portName - Qualified name of the service endpoint in the WSDL service description
serviceEndpointInterface - Service endpoint interface supported by the dynamic proxy or stub instance
Returns:
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
  • Optionally, if an illegal serviceEndpointInterface or portName is specified
See Also:
Proxy, InvocationHandler

getPort

public abstract <T> T getPort(Class<T> serviceEndpointInterface)
The getPort method returns a stub. 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.

Parameters:
serviceEndpointInterface - Service endpoint interface
Returns:
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
  • Optionally, if an illegal serviceEndpointInterface is specified

addPort

public abstract void addPort(QName portName,
                             String bindingId,
                             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.

Parameters:
portName - Qualified name for the target service endpoint
bindingId - A URI identifier of a binding.
endpointAddress - Address of the target service endpoint as a URI
Throws:
WebServiceException - If any error in the creation of the port
See Also:
SOAPBinding.SOAP11HTTP_BINDING, SOAPBinding.SOAP12HTTP_BINDING, HTTPBinding.HTTP_BINDING

createDispatch

public abstract <T> Dispatch<T> createDispatch(QName portName,
                                               Class<T> type,
                                               Service.Mode mode)
Creates a Dispatch instance for use with objects of the users choosing.

Parameters:
portName - Qualified name for the target service endpoint
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 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.
Returns:
Dispatch instance
Throws:
WebServiceException - If any error in the creation of the Dispatch object
See Also:
Source, SOAPMessage

createDispatch

public abstract Dispatch<Object> createDispatch(QName portName,
                                                JAXBContext context,
                                                Service.Mode mode)
Creates a Dispatch instance for use with JAXB generated objects.

Parameters:
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 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.
Returns:
Dispatch instance
Throws:
ServiceException - If any error in the creation of the Dispatch object
See Also:
JAXBContext

getServiceName

public abstract QName getServiceName()
Gets the name of this service.

Returns:
Qualified name of this service

getPorts

public abstract Iterator<QName> getPorts()
Returns an Iterator for the list of QNames of service endpoints grouped by this service

Returns:
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

getWSDLDocumentLocation

public abstract URL getWSDLDocumentLocation()
Gets the location of the WSDL document for this Service.

Returns:
URL for the location of the WSDL document for this service

getHandlerResolver

public abstract HandlerResolver getHandlerResolver()
Returns the configured handler resolver.

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

setHandlerResolver

public abstract void setHandlerResolver(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.

Parameters:
handlerResolver - The HandlerResolver to use for all subsequently created proxy/dispatch objects.
See Also:
HandlerResolver

getExecutor

public abstract Executor getExecutor()
Returns the executor for this Serviceinstance. The executor is used for all asynchronous invocations that require callbacks.

Returns:
The java.util.concurrent.Executor to be used to invoke a callback.
See Also:
Executor

setExecutor

public abstract void setExecutor(Executor executor)
Sets the executor for this Service instance. The executor is used for all asynchronous invocations that require callbacks.

Parameters:
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 Also:
Executor

Java EE 5 SDK

Submit a bug or feature

Copyright 2006 Sun Microsystems, Inc. All rights reserved.