javax.xml.ws

接口
异常
注释
java.lang.Object
  继承者 javax.xml.ws.Service

public class Service
     
extends Object

Service 对象提供 Web 服务的客户端视图。

Service 作为以下内容的工厂:

  • 目标服务端点的代理。
  • 用于远程操作的动态面向消息调用的 javax.xml.ws.Dispatch 实例。
  • 使用 getPorts 方法可以对服务上可用的端口进行枚举。此外,还可以将一个服务端点接口传递给一元的 getPort 方法,并允许运行时选择兼容的端口。

    可以通过 HandlerResolver 设置由 Service 创建的所有对象的处理程序链。

    可以在服务上设置 Executor 以便更好地控制用来指派异步回调的线程。例如,通过创建 ThreadPoolExecutor 并向服务注册它可以启用带有特定参数的线程池。

    从以下版本开始:
    JAX-WS 2.0
    另请参见:
    Provider, HandlerResolver, Executor

    嵌套类摘要
    static class Service.Mode
              动态客户端或服务的方向。
     
    构造方法摘要
    protected Service(URL wsdlDocumentLocation, QName serviceName)
               
     
    方法摘要
     void addPort(QName portName, String bindingId, String endpointAddress)
              为服务创建新的端口。
    static Service create(QName serviceName)
              创建 Service 实例。
    static Service create(URL wsdlDocumentLocation, QName serviceName)
              创建 Service 实例。
    <T> Dispatch<T>
    createDispatch(QName portName, Class<T> type, Service.Mode mode)
              创建与用户选择的对象一起使用的 Dispatch 实例。
     Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode)
              创建与生成的 JAXB 对象一起使用的 Dispatch 实例。
     Executor getExecutor()
              返回此 Service 实例的执行程序。
     HandlerResolver getHandlerResolver()
              返回已配置的处理程序解析器。
    <T> T
    getPort(Class<T> serviceEndpointInterface)
              getPort 返回 stub。
    <T> T
    getPort(QName portName, Class<T> serviceEndpointInterface)
              getPort 方法返回 stub。
     Iterator<QName> getPorts()
              返回一个 Iterator,它用于此服务所组合的服务端点的 QName 列表。
     QName getServiceName()
              获取此服务的名称。
     URL getWSDLDocumentLocation()
              获取此 Service 的 WSDL 文档的位置。
     void setExecutor(Executor executor)
              设置此 Service 实例的执行程序。
     void setHandlerResolver(HandlerResolver handlerResolver)
              设置此 Service 实例的 HandlerResolver
     
    从类 java.lang.Object 继承的方法
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    构造方法详细信息

    Service

    protected Service(URL wsdlDocumentLocation,
                      QName serviceName)
    方法详细信息

    getPort

    public <T> T getPort(QName portName,
                         Class<T> serviceEndpointInterface)
    getPort 方法返回 stub。服务客户端使用此 stub 调用目标服务端点上的操作。 serviceEndpointInterface 指定创建的动态代理或 stub 实例所支持的服务端点接口。

    参数:
    portName - WSDL 服务描述中服务端点的限定名称
    serviceEndpointInterface - 动态代理或 stub 实例所支持的服务端点接口
    返回:
    支持指定服务端点接口的对象代理实例
    抛出:
    WebServiceException - 在以下情况下抛出此异常:
    • 如果创建代理的过程中出现错误
    • 如果缺少此方法所需的任何 WSDL 元数据
    • 如果指定了非法的 serviceEndpointInterfaceportName
    另请参见:
    Proxy, InvocationHandler

    getPort

    public <T> T getPort(Class<T> serviceEndpointInterface)
    getPort 返回 stub。参数 serviceEndpointInterface 指定返回的代理所支持的服务端点接口。在此方法的实现中,JAX-WS 运行时系统承担选择协议绑定(和端口)以及配置相应代理的责任。返回的代理不应该由客户端进行配置。

    参数:
    serviceEndpointInterface - 服务端点接口
    返回:
    支持指定服务端点接口的对象实例
    抛出:
    WebServiceException -
    • 如果创建代理的过程中出现错误
    • 如果缺少此方法所需的任何 WSDL 元数据
    • 如果指定了非法的 serviceEndpointInterface

    addPort

    public void addPort(QName portName,
                        String bindingId,
                        String endpointAddress)
    为服务创建新的端口。以这种方法创建的端口不包含 WSDL 端口类型信息,并且只能用于创建 Dispatch 实例。

    参数:
    portName - 目标服务端点的限定名称
    bindingId - 绑定的 String 标识符。
    endpointAddress - URI 形式的目标服务端点地址
    抛出:
    WebServiceException - 如果创建端口的过程中出现错误
    另请参见:
    SOAPBinding.SOAP11HTTP_BINDING, SOAPBinding.SOAP12HTTP_BINDING, HTTPBinding.HTTP_BINDING

    createDispatch

    public <T> Dispatch<T> createDispatch(QName portName,
                                          Class<T> type,
                                          Service.Mode mode)
    创建与用户选择的对象一起使用的 Dispatch 实例。

    参数:
    portName - 目标服务端点的限定名称
    type - 用于消息或消息负载的对象类。要求实现支持 javax.xml.transform.Sourcejavax.xml.soap.SOAPMessagejavax.activation.DataSource,具体取决于使用的绑定。
    mode - 控制创建的 Dispatch 实例是消息还是所面向的净荷,即用户使用完整的协议消息还是消息负载。例如,当使用 SOAP 协议时,此参数控制用户将使用 SOAP 消息还是使用 SOAP 正文的内容。当类型为 SOAPMessage 时,模式必须为 MESSAGE。
    返回:
    Dispatch 实例
    抛出:
    WebServiceException - 如果创建 Dispatch 对象的过程中出现错误
    另请参见:
    Source, SOAPMessage

    createDispatch

    public Dispatch<Object> createDispatch(QName portName,
                                           JAXBContext context,
                                           Service.Mode mode)
    创建与生成的 JAXB 对象一起使用的 Dispatch 实例。

    参数:
    portName - 目标服务端点的限定名称
    context - 用来对消息或消息负载进行编组和解组的 JAXB 上下文。
    mode - 控制创建的 Dispatch 实例是消息还是所面向的净荷,即用户使用完整的协议消息还是消息负载。例如,当使用 SOAP 协议时,此参数控制用户将使用 SOAP 消息还是使用 SOAP 正文的内容。
    返回:
    Dispatch 实例
    抛出:
    ServiceException - 如果创建 Dispatch 对象的过程中出现错误
    另请参见:
    JAXBContext

    getServiceName

    public QName getServiceName()
    获取此服务的名称。

    返回:
    此服务的限定名称

    getPorts

    public Iterator<QName> getPorts()
    返回一个 Iterator,它用于此服务所组合的服务端点的 QName 列表。

    返回:
    返回元素类型为 javax.xml.namespace.QNamejava.util.Iterator
    抛出:
    WebServiceException - 如果此 Service 类没有对所需 WSDL 元数据的访问权限

    getWSDLDocumentLocation

    public URL getWSDLDocumentLocation()
    获取此 Service 的 WSDL 文档的位置。

    返回:
    此服务 WSDL 文档位置的 URL

    getHandlerResolver

    public HandlerResolver getHandlerResolver()
    返回已配置的处理程序解析器。

    返回:
    HandlerResolver,此 Service 实例所使用的 HandlerResolver,如果不存在,则返回 null

    setHandlerResolver

    public void setHandlerResolver(HandlerResolver handlerResolver)
    设置此 Service 实例的 HandlerResolver

    如果存在处理程序解析器,则创建每个代理或 Dispatch 实例时将调用一次该解析器,并且将在实例上设置解析器所返回的处理程序链。

    参数:
    handlerResolver - 用于随后创建的代理/指派对象的 HandlerResolver
    另请参见:
    HandlerResolver

    getExecutor

    public Executor getExecutor()
    返回此 Service 实例的执行程序。 执行程序用于所有需要回调的异步调用。

    返回:
    将用来调用回调的 java.util.concurrent.Executor
    另请参见:
    Executor

    setExecutor

    public void setExecutor(Executor executor)
    设置此 Service 实例的执行程序。 执行程序用于所有需要回调的异步调用。

    参数:
    executor - 将用来调用回调的 java.util.concurrent.Executor
    抛出:
    SecurityException - 如果出于安全的原因(例如,缺少必要的权限),实例不支持设置执行程序。
    另请参见:
    Executor

    create

    public static Service create(URL wsdlDocumentLocation,
                                 QName serviceName)
    创建 Service 实例。 指定的 WSDL 文档位置和服务限定名称必须唯一标识 wsdl:service 元素。

    参数:
    wsdlDocumentLocation - 服务 WSDL 文档位置的 URL
    serviceName - 服务的 QName
    抛出:
    WebServiceException - 如果在创建指定服务的过程中发生任何错误

    create

    public static Service create(QName serviceName)
    创建 Service 实例。

    参数:
    serviceName - 服务的 QName
    抛出:
    WebServiceException - 如果在创建指定服务的过程中发生任何错误