JavaTM 2 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 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only