JavaTM Platform
Standard Ed. 6

javax.xml.ws.spi
类 ServiceDelegate

java.lang.Object
  继承者 javax.xml.ws.spi.ServiceDelegate

public abstract class ServiceDelegate
     
extends Object

服务委托由 Service 对象内部使用,以允许插入 JAX-WS 实现。

每个 Service 对象都有自己的代理,这些代理是使用 javax.xml.ws.Provider#createServiceDelegate 方法创建的。Service 对象将其所有实例方法都委托给它的代理。

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

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

构造方法详细信息

ServiceDelegate

protected ServiceDelegate()
方法详细信息

getPort

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

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

getPort

public abstract <T> T getPort(Class<T> serviceEndpointInterface)
getPort 方法返回一个桩模块。参数 serviceEndpointInterface 指定返回代理所支持的服务端点接口。在实现此方法的过程中,JAX-WS 运行时系统负责选择协议绑定(和端口)并相应地配置代理。返回的代理不应该由客户端进行配置。

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

addPort

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

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

createDispatch

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

参数:
portName - 目标服务端点的限定名称
type - 用于消息或消息负载的对象的类。支持 javax.xml.transform.Source 和 javax.xml.soap.SOAPMessage 所需的实现
mode - 控制创建的 dispatch 实例是消息还是消息负载,即用户使用的是完整的协议消息还是消息负载。例如,当使用 SOAP 协议时,该参数将控制用户是使用 SOAP 消息还是使用 SOAP 正文的内容。当类型为 SOAPMessage 时,模式必须为 MESSAGE。
返回:
Dispatch 实例
抛出:
WebServiceException - 如果创建 Dispatch 对象的过程中发生错误
另请参见:
Source, SOAPMessage

createDispatch

public abstract 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 abstract QName getServiceName()
获取此服务的名称。

返回:
此服务的限定名称

getPorts

public abstract Iterator<QName> getPorts()
返回一个 Iterator,该迭代器用于根据此服务分组的服务端点的 QName 列表。

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

getWSDLDocumentLocation

public abstract URL getWSDLDocumentLocation()
获取此服务的 WSDL 文档的位置。

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

getHandlerResolver

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

返回:
Service 实例正在使用的 HandlerResolver;如果不存在该解析器,则返回 null

setHandlerResolver

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

如果存在处理程序解析器,则对每个已创建的代理或 dispatch 实例调用一次该解析器,然后在实例上设置解析器返回的处理程序链。

参数:
handlerResolver - 用于所有随后创建的代理/调度对象的 HandlerResolver
另请参见:
HandlerResolver

getExecutor

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

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

setExecutor

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

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

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策