Class WSServiceDelegate

java.lang.Object
jakarta.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 jakarta.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 jakarta.xml.ws.WebServiceFeature[] EMPTY_FEATURES
  • Constructor Details

    • WSServiceDelegate

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

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

      public WSServiceDelegate(@Nullable Source wsdl, @NotNull QName serviceName, @NotNull Class<? extends jakarta.xml.ws.Service> serviceClass, jakarta.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 jakarta.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 jakarta.xml.ws.Service> serviceClass, jakarta.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 jakarta.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 jakarta.xml.ws.spi.ServiceDelegate
    • setExecutor

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

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

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

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

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

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

      public <T> T getPort(WSEndpointReference wsepr, Class<T> portInterface, jakarta.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, jakarta.xml.ws.WebServiceFeature... features)
      Specified by:
      getPort in class jakarta.xml.ws.spi.ServiceDelegate
    • getPort

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

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

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

      public <T> jakarta.xml.ws.Dispatch<T> createDispatch(QName portName, WSEndpointReference wsepr, Class<T> aClass, jakarta.xml.ws.Service.Mode mode, jakarta.xml.ws.WebServiceFeature... features)
      Description copied from class: WSService
      Works like ServiceDelegate.createDispatch(jakarta.xml.ws.EndpointReference, java.lang.Class, jakarta.xml.ws.Service.Mode, jakarta.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> jakarta.xml.ws.Dispatch<T> createDispatch(QName portName, WSEndpointReference wsepr, Class<T> aClass, jakarta.xml.ws.Service.Mode mode, WebServiceFeatureList features)
    • createDispatch

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

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

      public <T> jakarta.xml.ws.Dispatch<T> createDispatch(jakarta.xml.ws.EndpointReference endpointReference, Class<T> type, jakarta.xml.ws.Service.Mode mode, jakarta.xml.ws.WebServiceFeature... features)
      Specified by:
      createDispatch in class jakarta.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 jakarta.xml.ws.Dispatch<Object> createDispatch(QName portName, jakarta.xml.bind.JAXBContext jaxbContext, jakarta.xml.ws.Service.Mode mode) throws jakarta.xml.ws.WebServiceException
      Specified by:
      createDispatch in class jakarta.xml.ws.spi.ServiceDelegate
      Throws:
      jakarta.xml.ws.WebServiceException
    • createDispatch

      public jakarta.xml.ws.Dispatch<Object> createDispatch(QName portName, WSEndpointReference wsepr, jakarta.xml.bind.JAXBContext jaxbContext, jakarta.xml.ws.Service.Mode mode, jakarta.xml.ws.WebServiceFeature... features)
      Description copied from class: WSService
      Works like ServiceDelegate.createDispatch(jakarta.xml.ws.EndpointReference, jakarta.xml.bind.JAXBContext, jakarta.xml.ws.Service.Mode, jakarta.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 jakarta.xml.ws.Dispatch<Object> createDispatch(QName portName, WSEndpointReference wsepr, jakarta.xml.bind.JAXBContext jaxbContext, jakarta.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 jakarta.xml.ws.Dispatch<Object> createDispatch(QName portName, jakarta.xml.bind.JAXBContext jaxbContext, jakarta.xml.ws.Service.Mode mode, jakarta.xml.ws.WebServiceFeature... webServiceFeatures)
      Specified by:
      createDispatch in class jakarta.xml.ws.spi.ServiceDelegate
    • createDispatch

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

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

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

      public Class getServiceClass()
    • getPorts

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

      public URL getWSDLDocumentLocation()
      Specified by:
      getWSDLDocumentLocation in class jakarta.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()