ServiceDelegate (Java EE 5)

Java EE API


javax.xml.ws.spi Class ServiceDelegate

java.lang.Object
  extended by javax.xml.ws.spi.ServiceDelegate

public abstract class ServiceDelegate
extends Object


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

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

英文文档:

Service delegates are used internally by Service objects to allow pluggability of JAX-WS implementations.

Every Service object has its own delegate, created using the javax.xml.ws.Provider#createServiceDelegate method. A Service object delegates all of its instance methods to its delegate.

Since:
JAX-WS 2.0
See Also:
Service, Provider

Constructor Summary
protected
 
Method Summary
abstract  void
abstract
<T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode)
          Creates a Dispatch instance for use with objects of the users choosing. abstract  Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode)
          Creates a Dispatch instance for use with JAXB generated objects. abstract  Executor getExecutor()
          Returns the executor for this Serviceinstance. abstract  HandlerResolver getHandlerResolver()
          Returns the configured handler resolver.
abstract
<T> T
getPort(Class<T> serviceEndpointInterface)
          The getPort method returns a stub.
abstract
<T> T
getPort(QName portName, Class<T> serviceEndpointInterface)
          The getPort method returns a stub. abstract  Iterator<QName> getPorts()
          Returns an Iterator for the list of QNames of service endpoints grouped by this service abstract  QName getServiceName()
          Gets the name of this service. abstract  URL getWSDLDocumentLocation()
          Gets the location of the WSDL document for this Service. abstract  void setExecutor(Executor executor)
          Sets the executor for this Service instance. abstract  void setHandlerResolver(HandlerResolver handlerResolver)
          Sets the HandlerResolver for this Service instance.  
Methods inherited from class java.lang.Object
 

Constructor Detail

protected ServiceDelegate()
英文文档:

ServiceDelegate

protected ServiceDelegate()
Method Detail

英文文档:

getPort

public abstract <T> T getPort(QName portName,
                              Class<T> serviceEndpointInterface)
The getPort method returns a stub. A service client uses this stub to invoke operations on the target service endpoint. The serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy or stub instance.

Parameters:
portName - Qualified name of the service endpoint in the WSDL service description
serviceEndpointInterface - Service endpoint interface supported by the dynamic proxy or stub instance
Returns:
Object Proxy instance that supports the specified service endpoint interface
Throws:
WebServiceException - This exception is thrown in the following cases:
  • If there is an error in creation of the proxy
  • If there is any missing WSDL metadata as required by this method
  • Optionally, if an illegal serviceEndpointInterface or portName is specified
See Also:
Proxy, InvocationHandler

英文文档:

getPort

public abstract <T> T getPort(Class<T> serviceEndpointInterface)
The getPort method returns a stub. The parameter serviceEndpointInterface specifies the service endpoint interface that is supported by the returned proxy. In the implementation of this method, the JAX-WS runtime system takes the responsibility of selecting a protocol binding (and a port) and configuring the proxy accordingly. The returned proxy should not be reconfigured by the client.

Parameters:
serviceEndpointInterface - Service endpoint interface
Returns:
Object instance that supports the specified service endpoint interface
Throws:
WebServiceException -
  • If there is an error during creation of the proxy
  • If there is any missing WSDL metadata as required by this method
  • Optionally, if an illegal serviceEndpointInterface is specified

abstract public void addPort(javax.xml.namespace.QName portName, String bindingId, String endpointAddress)
为服务创建新的端口。以这种方法创建的端口不包含 WSDL 端口类型信息,并且只能用于创建 Dispatch 实例。
portName 目标服务端点的限定名称
bindingId 绑定的 URI 标识符。
endpointAddress URI 形式的目标服务端点地址
ThrowsWebServiceException: 如果创建端口的过程中发生错误
See also SOAP11HTTP_BINDING, SOAP12HTTP_BINDING, HTTP_BINDING
英文文档:

addPort

public abstract void addPort(QName portName,
                             String bindingId,
                             String endpointAddress)
Creates a new port for the service. Ports created in this way contain no WSDL port type information and can only be used for creating Dispatchinstances.

Parameters:
portName - Qualified name for the target service endpoint
bindingId - A URI identifier of a binding.
endpointAddress - Address of the target service endpoint as a URI
Throws:
WebServiceException - If any error in the creation of the port
See Also:
SOAPBinding.SOAP11HTTP_BINDING, SOAPBinding.SOAP12HTTP_BINDING, HTTPBinding.HTTP_BINDING

英文文档:

createDispatch

public abstract <T> Dispatch<T> createDispatch(QName portName,
                                               Class<T> type,
                                               Service.Mode mode)
Creates a Dispatch instance for use with objects of the users choosing.

Parameters:
portName - Qualified name for the target service endpoint
type - The class of object used to messages or message payloads. Implementations are required to support javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body. Mode must be MESSAGE when type is SOAPMessage.
Returns:
Dispatch instance
Throws:
WebServiceException - If any error in the creation of the Dispatch object
See Also:
Source, SOAPMessage

abstract public ">Dispatch createDispatch(javax.xml.namespace.QName portName, JAXBContext context, Service.Mode mode)
创建与 JAXB 生成的对象一起使用的 Dispatch 实例。
portName 目标服务端点的限定名称
context 用来对消息或消息负载进行编组和解组的 JAXB 上下文。
mode 控制创建的 Dispatch 实例是消息还是所面向的净荷,即用户使用完整的协议消息还是消息负载。例如,当使用 SOAP 协议时,此参数控制用户将使用 SOAP 消息还是使用 SOAP 正文的内容。
return dispatch 实例
ThrowsServiceException: 如果创建 Dispatch 对象的过程中发生错误
See also javax.xml.bind.JAXBContext
英文文档:

createDispatch

public abstract Dispatch<Object> createDispatch(QName portName,
                                                JAXBContext context,
                                                Service.Mode mode)
Creates a Dispatch instance for use with JAXB generated objects.

Parameters:
portName - Qualified name for the target service endpoint
context - The JAXB context used to marshall and unmarshall messages or message payloads.
mode - Controls whether the created dispatch instance is message or payload oriented, i.e. whether the user will work with complete protocol messages or message payloads. E.g. when using the SOAP protocol, this parameter controls whether the user will work with SOAP messages or the contents of a SOAP body.
Returns:
Dispatch instance
Throws:
ServiceException - If any error in the creation of the Dispatch object
See Also:
JAXBContext

abstract public javax.xml.namespace.QName getServiceName()
获取此服务的名称。
return 此服务的限定名称
英文文档:

getServiceName

public abstract QName getServiceName()
Gets the name of this service.

Returns:
Qualified name of this service

abstract public java.util.Iterator<E> getPorts()
返回一个 Iterator,它用于此服务所组合的服务端点的 QName 列表。
return 返回元素类型为 javax.xml.namespace.QNamejava.util.Iterator
ThrowsWebServiceException: 如果此 Service 类没有对所需 WSDL 元数据的访问权限
英文文档:

getPorts

public abstract Iterator<QName> getPorts()
Returns an Iterator for the list of QNames of service endpoints grouped by this service

Returns:
Returns java.util.Iterator with elements of type javax.xml.namespace.QName
Throws:
WebServiceException - If this Service class does not have access to the required WSDL metadata

abstract public java.net.URL getWSDLDocumentLocation()
获取此服务的 WSDL 文档的位置。
return 此服务 WSDL 文档位置的 URL
英文文档:

getWSDLDocumentLocation

public abstract URL getWSDLDocumentLocation()
Gets the location of the WSDL document for this Service.

Returns:
URL for the location of the WSDL document for this service

abstract public HandlerResolver getHandlerResolver()
返回已配置的处理程序解析器。
return HandlerResolver,此 Service 实例所使用的 HandlerResolver,如果不存在,则返回 null
英文文档:

getHandlerResolver

public abstract HandlerResolver getHandlerResolver()
Returns the configured handler resolver.

Returns:
HandlerResolver The HandlerResolver being used by this Service instance, or null if there isn't one.

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

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

handlerResolver 用于随后创建的代理/指派对象的 HandlerResolver
See also javax.xml.ws.handler.HandlerResolver

英文文档:

setHandlerResolver

public abstract void setHandlerResolver(HandlerResolver handlerResolver)
Sets the HandlerResolver for this Service instance.

The handler resolver, if present, will be called once for each proxy or dispatch instance that is created, and the handler chain returned by the resolver will be set on the instance.

Parameters:
handlerResolver - The HandlerResolver to use for all subsequently created proxy/dispatch objects.
See Also:
HandlerResolver

abstract public java.util.concurrent.Executor getExecutor()
返回此 Service 实例的执行程序。 该执行程序将用于所有需要回调的异步调用。
return 将用来调用回调的 java.util.concurrent.Executor
See also java.util.concurrent.Executor
英文文档:

getExecutor

public abstract Executor getExecutor()
Returns the executor for this Serviceinstance. The executor is used for all asynchronous invocations that require callbacks.

Returns:
The java.util.concurrent.Executor to be used to invoke a callback.
See Also:
Executor

abstract public void setExecutor(java.util.concurrent.Executor executor)
设置此 Service 实例的执行程序。 该执行程序将用于所有需要回调的异步调用。
executor 将用来调用回调的 java.util.concurrent.Executor
ThrowsSecurityException: 如果出于安全的原因(例如,缺少必要的权限),实例不支持设置执行程序。
See also java.util.concurrent.Executor
英文文档:

setExecutor

public abstract void setExecutor(Executor executor)
Sets the executor for this Service instance. The executor is used for all asynchronous invocations that require callbacks.

Parameters:
executor - The java.util.concurrent.Executor to be used to invoke a callback.
Throws:
SecurityException - If the instance does not support setting an executor for security reasons (e.g. the necessary permissions are missing).
See Also:
Executor


Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

一看就知道只有菜鸟才干这么无知的事啦。

PS : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!