Class WSServiceDelegate

java.lang.Object
javax.xml.ws.spi.ServiceDelegate
com.sun.xml.ws.api.WSService
com.sun.xml.ws.client.WSServiceDelegate
All Implemented Interfaces:
Component, ComponentRegistry

public class WSServiceDelegate extends WSService
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 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 the provided HandlerRegistry.

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
Author:
WS Development Team
See Also:
  • Field Details

    • EMPTY_FEATURES

      protected static final javax.xml.ws.WebServiceFeature[] EMPTY_FEATURES
  • Constructor Details

    • WSServiceDelegate

      public WSServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends javax.xml.ws.Service> serviceClass, javax.xml.ws.WebServiceFeature... features)
    • WSServiceDelegate

      protected WSServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends javax.xml.ws.Service> serviceClass, WebServiceFeatureList features)
    • WSServiceDelegate

      public WSServiceDelegate(@Nullable Source wsdl, @NotNull QName serviceName, @NotNull Class<? extends javax.xml.ws.Service> serviceClass, javax.xml.ws.WebServiceFeature... features)
      Parameters:
      serviceClass - Either Service.class or other generated service-derived classes.
    • WSServiceDelegate

      protected WSServiceDelegate(@Nullable Source wsdl, @NotNull QName serviceName, @NotNull Class<? extends javax.xml.ws.Service> serviceClass, WebServiceFeatureList features)
      Parameters:
      serviceClass - Either Service.class or other generated service-derived classes.
    • WSServiceDelegate

      public WSServiceDelegate(@Nullable Source wsdl, @Nullable WSDLService service, @NotNull QName serviceName, @NotNull Class<? extends javax.xml.ws.Service> serviceClass, javax.xml.ws.WebServiceFeature... features)
      Parameters:
      serviceClass - Either Service.class or other generated service-derived classes.
    • WSServiceDelegate

      public WSServiceDelegate(@Nullable Source wsdl, @Nullable WSDLService service, @NotNull QName serviceName, @NotNull Class<? extends javax.xml.ws.Service> serviceClass, WebServiceFeatureList features)
      Parameters:
      serviceClass - Either Service.class or other generated service-derived classes.
  • Method Details

    • getQNameToPortInfoMap

      protected Map<QName,PortInfo> getQNameToPortInfoMap()
    • createCatalogResolver

      protected EntityResolver createCatalogResolver()
    • getExecutor

      public Executor getExecutor()
      Specified by:
      getExecutor in class javax.xml.ws.spi.ServiceDelegate
    • setExecutor

      public void setExecutor(Executor executor)
      Specified by:
      setExecutor in class javax.xml.ws.spi.ServiceDelegate
    • getHandlerResolver

      public javax.xml.ws.handler.HandlerResolver getHandlerResolver()
      Specified by:
      getHandlerResolver in class javax.xml.ws.spi.ServiceDelegate
    • setHandlerResolver

      public void setHandlerResolver(javax.xml.ws.handler.HandlerResolver resolver)
      Specified by:
      setHandlerResolver in class javax.xml.ws.spi.ServiceDelegate
    • getPort

      public <T> T getPort(QName portName, Class<T> portInterface) throws javax.xml.ws.WebServiceException
      Specified by:
      getPort in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • getPort

      public <T> T getPort(QName portName, Class<T> portInterface, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      getPort in class javax.xml.ws.spi.ServiceDelegate
    • getPort

      public <T> T getPort(javax.xml.ws.EndpointReference epr, Class<T> portInterface, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      getPort in class javax.xml.ws.spi.ServiceDelegate
    • getPort

      public <T> T getPort(WSEndpointReference wsepr, Class<T> portInterface, javax.xml.ws.WebServiceFeature... features)
      Description copied from class: WSService
      Works like ServiceDelegate.getPort(EndpointReference, Class, WebServiceFeature...) but takes WSEndpointReference.
      Specified by:
      getPort in class WSService
    • getPort

      protected <T> T getPort(WSEndpointReference wsepr, QName portName, Class<T> portInterface, WebServiceFeatureList features)
    • getPort

      public <T> T getPort(Class<T> portInterface, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      getPort in class javax.xml.ws.spi.ServiceDelegate
    • getPort

      public <T> T getPort(Class<T> portInterface) throws javax.xml.ws.WebServiceException
      Specified by:
      getPort in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • addPort

      public void addPort(QName portName, String bindingId, String endpointAddress) throws javax.xml.ws.WebServiceException
      Specified by:
      addPort in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(QName portName, Class<T> aClass, javax.xml.ws.Service.Mode mode) throws javax.xml.ws.WebServiceException
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(QName portName, WSEndpointReference wsepr, Class<T> aClass, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... features)
      Description copied from class: WSService
      Works like ServiceDelegate.createDispatch(javax.xml.ws.EndpointReference, java.lang.Class, javax.xml.ws.Service.Mode, javax.xml.ws.WebServiceFeature[]) but it takes the port name separately, so that EPR without embedded metadata can be used.
      Specified by:
      createDispatch in class WSService
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(QName portName, WSEndpointReference wsepr, Class<T> aClass, javax.xml.ws.Service.Mode mode, WebServiceFeatureList features)
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(QName portName, Class<T> aClass, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(QName portName, Class<T> aClass, javax.xml.ws.Service.Mode mode, WebServiceFeatureList features)
    • createDispatch

      public <T> javax.xml.ws.Dispatch<T> createDispatch(javax.xml.ws.EndpointReference endpointReference, Class<T> type, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
    • safeGetPort

      @NotNull public PortInfo safeGetPort(QName portName)
      Obtains PortInfo for the given name, with error check.
    • getEndpointAddress

      public EndpointAddress getEndpointAddress(QName qName)
    • createDispatch

      public javax.xml.ws.Dispatch<Object> createDispatch(QName portName, javax.xml.bind.JAXBContext jaxbContext, javax.xml.ws.Service.Mode mode) throws javax.xml.ws.WebServiceException
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • createDispatch

      public javax.xml.ws.Dispatch<Object> createDispatch(QName portName, WSEndpointReference wsepr, javax.xml.bind.JAXBContext jaxbContext, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... features)
      Description copied from class: WSService
      Works like ServiceDelegate.createDispatch(javax.xml.ws.EndpointReference, javax.xml.bind.JAXBContext, javax.xml.ws.Service.Mode, javax.xml.ws.WebServiceFeature[]) but it takes the port name separately, so that EPR without embedded metadata can be used.
      Specified by:
      createDispatch in class WSService
    • createDispatch

      protected javax.xml.ws.Dispatch<Object> createDispatch(QName portName, WSEndpointReference wsepr, javax.xml.bind.JAXBContext jaxbContext, javax.xml.ws.Service.Mode mode, WebServiceFeatureList features)
    • getContainer

      @NotNull public Container getContainer()
      Description copied from class: WSService
      Gets the Container object.

      The components inside WSEndpoint uses this reference to communicate with the hosting environment.

      Specified by:
      getContainer in class WSService
      Returns:
      always same object. If no "real" Container instance is given, Container.NONE will be returned.
    • createDispatch

      public javax.xml.ws.Dispatch<Object> createDispatch(QName portName, javax.xml.bind.JAXBContext jaxbContext, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... webServiceFeatures)
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
    • createDispatch

      protected javax.xml.ws.Dispatch<Object> createDispatch(QName portName, javax.xml.bind.JAXBContext jaxbContext, javax.xml.ws.Service.Mode mode, WebServiceFeatureList features)
    • createDispatch

      public javax.xml.ws.Dispatch<Object> createDispatch(javax.xml.ws.EndpointReference endpointReference, javax.xml.bind.JAXBContext context, javax.xml.ws.Service.Mode mode, javax.xml.ws.WebServiceFeature... features)
      Specified by:
      createDispatch in class javax.xml.ws.spi.ServiceDelegate
    • getServiceName

      public QName getServiceName()
      Specified by:
      getServiceName in class javax.xml.ws.spi.ServiceDelegate
    • getServiceClass

      public Class getServiceClass()
    • getPorts

      public Iterator<QName> getPorts() throws javax.xml.ws.WebServiceException
      Specified by:
      getPorts in class javax.xml.ws.spi.ServiceDelegate
      Throws:
      javax.xml.ws.WebServiceException
    • getWSDLDocumentLocation

      public URL getWSDLDocumentLocation()
      Specified by:
      getWSDLDocumentLocation in class javax.xml.ws.spi.ServiceDelegate
    • getStubHandler

      protected InvocationHandler getStubHandler(BindingImpl binding, SEIPortInfo eif, @Nullable WSEndpointReference epr)
    • getPortModel

      @NotNull public WSDLPort getPortModel(WSDLService wsdlService, QName portName)
      Obtains a WSDLPortImpl with error check.
      Returns:
      guaranteed to be non-null.
    • buildRuntimeModel

      public SEIModel buildRuntimeModel(QName serviceName, QName portName, Class portInterface, WSDLPort wsdlPort, WebServiceFeatureList features)
    • getWsdlService

      public WSDLService getWsdlService()