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

      • EMPTY_FEATURES

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

      • 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

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

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

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

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