Class 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:
    Executor
    • Field Detail

      • EMPTY_FEATURES

        protected static final jakarta.xml.ws.WebServiceFeature[] EMPTY_FEATURES
    • Constructor Detail

      • 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 Detail

      • 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​(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,
                                                             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.
      • 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

        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
      • getPortModel

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