實作 JAX-RPC Web 服務用戶端

您可以根據 Web Services for Java™ Platform Enterprise Edition (Java EE) 規格及 Java API for XML-based RPC (JAX-RPC) 程式設計模型來開發 Web 服務用戶端。

開始之前

最佳作法 最佳作法: IBM® WebSphere® Application Server 支援 Java API for XML 型 Web 服務 (JAX-WS) 程式設計模型和 Java API for XML 型 RPC (JAX-RPC) 程式設計模型。JAX-WS 是延伸 JAX-RPC 程式設計模型所提供之基礎的下一代 Web 服務程式設計模型。 當使用策略性 JAX-WS 程式設計模型時,透過支援標準型註釋模型,簡化了 Web 服務和用戶端的開發工作。 雖然仍支援 JAX-RPC 程式設計模型和應用程式,但請利用易於實作的 JAX-WS 程式設計模型來開發新的 Web 服務應用程式和用戶端。bprac

關於這項作業

根據 JAX-RPC 程式設計模型開發 Web 服務用戶端

Web 服務用戶端程式設計模型提供在 Java EE 環境中存取 Web 服務的準則。您可以根據 Web Services for Java Platform Enterprise Edition (Java EE) 規格及 Java API for XML-based Remote Procedure Call (JAX-RPC) 規格來開發 Web 服務用戶端。應用程式伺服器支援基於 JAX-RPC 程式設計模型的 Enterprise JavaBeans (EJB) 用戶端、Java EE 應用程式用戶端、JavaServer Pages (JSP) 檔及 Servlet。

受管理和未受管理的 JAX-RPC Web 服務用戶端

使用 JAX-RPC 程式設計模型時,應用程式伺服器支援受管理和未受管理的 Web 服務用戶端:

  • 受管理的用戶端。

    Web Services for Java EE 用戶端由 Java 規格需求 (JSR) 109 定義,因為在 Java EE 儲存器中執行,所以是受管理的用戶端。 這些用戶端包裝成企業保存檔 (EAR),且包含作為服務要求端的元件。 這些元件由 Java EE 用戶端應用程式、Web 元件(例如 Servlet 或 JavaServer Pages (JSP))或階段作業 Enterprise JavaBeans (EJB) 組成。Web 服務受管理用戶端使用 JSR 109 API 和部署資訊來查閱和呼叫 Web 服務。

    對於受管理用戶端,服務查閱是透過 Java 命名和目錄介面 (JNDI) 查閱。請參閱「設定使用者名稱記號 Web 服務安全」、「數位簽章 Web 服務安全」及「小型認證機構 (LPTA) 記號 Web 服務安全」。 下列是符合 JSR 109 的環境定義查閱範例:

    InitialContext ctx = new InitialContext();
        FredsBankServiceLocator locator
    =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService");
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance();  

    為受管理用戶端實例化環境定義查閱時,請不要對服務定位器使用 new() 方法。以下是不符合 JSR 109 的範例(新的 ServiceLocator):

    Properties prop = new Properties();
        InitialContext ctx = new InitialContext(prop);
        FredsBankServiceLocator locator = new FredsBankServiceLocator();
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance(); 

    因為沒有 lookup() 呼叫,所以用戶端無法存取部署描述子。對於 JAX-RPC Web 服務,「Web 服務安全」配置位於 Web 服務部署描述子中。

  • 未受管理的用戶端

    如果 Java Platform Standard Edition (Java SE 6) 用戶端使用 JAX-RPC 執行時期環境來呼叫 Web 服務,而且不在任何 Java EE 儲存器中執行,就稱為未受管理的用戶端。Web 服務未受管理的用戶端是獨立式 Java 用戶端,可以直接檢查 WSDL 檔,並直接使用 JAX-RPC API 來設法呼叫 Web 服務。這些用戶端包裝成 JAR 檔,其中不含任何部署資訊。

    WSDL 檔與 Java 應用程式之間必須存在對映,Java 應用程式才能作為 Web 服務用戶端。 對於 JAX-RPC Web 服務,此對映由 JAX-RPC 規格定義。您可以使用 Java 元件來實作 Web 服務,作法是在 WSDL 檔中指定元件介面和連結資訊,並設計應用程式伺服器基礎架構來接受服務要求。 這整個過程都是根據 Web Services for Java EE 規格。 JAX-RPC 規格定義 WSDL 檔、Java 程式碼和 XML 綱目類型之間的對映。

程序

  1. 針對您要存取的 Web 服務,取得 Web 服務說明語言 (WSDL) 文件。

    您可以透過電子郵件向服務提供者查詢、透過統一資源定址器 (URL),或在「通用描述、探索與整合 (UDDI)」登錄中查閱,就能找到 WSDL。

  2. 使用 WSDL2Java 指令行工具根據 WSDL 檔開發用戶端連結 產生呼叫 Web 服務所需的資訊,包括服務端點介面和實作、產生的服務介面,以及 ibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmi 部署描述子。
  3. 完成用戶端實作。 撰寫用於呼叫 Web 服務的用戶端應用程式碼。
    請參閱 JSR 109 規格第 4 章。如需支援的標準和規格的完整清單,請參閱 Web 服務規格與 API 說明文件。
    註: 如果應用程式在 JSR 109 用戶端中建立許多執行緒,則 meta 資料(包括 WebSphere Application Server 配置)不會複製給執行緒,也不會呼叫「廣域安全處理程式」。

    您可以在可下載的 WebServicesSamples 應用程式中,檢閱基於 JAX-RPC 的 Web 服務範例:GetQuote 用戶端。 如需進一步瞭解,請參閱「8.0 版範例」資訊。

  4. (選用)將啟用 Web 服務的用戶端 Java 保存檔 (JAR) 組合到企業保存檔 (EAR) 中 如果要開發 Java EE 用戶端儲存器中執行的受管理 JAX-RPC Web 服務用戶端,請完成這個步驟。
  5. (選用)將啟用 Web 服務的用戶端 Web 應用程式保存檔 (WAR) 組合到企業保存檔 (EAR) 中 如果要開發 Java EE 用戶端儲存器中執行的受管理 JAX-RPC Web 服務用戶端,請完成這個步驟。
  6. (選用)配置用戶端部署描述子 如果要開發受管理的 JAX-RPC 用戶端,請完成這個步驟。
  7. (選用)配置 ibm-webservicesclient-bnd.xmi 部署描述子 如果要部署 Java EE 用戶端儲存器中執行的受管理 JAX-RPC 用戶端,而且想要置換預設用戶端設定,請完成這個步驟。如需 ibm-webservicesclient-bnd.xmi 部署描述子的相關資訊,請參閱 ibm-webservicesclient-bnd.xmi 組合內容
  8. (選用)部署 Web 服務用戶端應用程式 如果要部署 Java EE 用戶端儲存器中執行的受管理 JAX-RPC Web 服務用戶端,請完成這個步驟。
  9. 測試啟用 Web 服務的用戶端應用程式 您可以測試未受管理的用戶端 JAR 檔或受管理的用戶端應用程式。

結果

您已建立並測試 Web 服務用戶端應用程式。

下一步

在開發 Web 服務應用程式用戶端,而且靜態連結用戶端之後,實作所使用的服務端點,就是您在開發過程中使用的 WSDL 檔中識別的服務端點。 在安裝 Web 服務應用程式期間或之後,您可能想要變更服務端點。 對於受管理的用戶端,您可以使用管理主控台或 wsadmin Scripting 工具變更端點。

另外,您可以考慮實作 Web 服務用戶端的延伸,以自訂 Web 服務。 這些延伸的一些例子包括在 SOAP 標頭中傳送和接收值、傳送和接收 HTTP 或 JMS 傳輸標頭,或使用自訂連結。如需進一步瞭解這些延伸,請參閱「實作 Web 服務用戶端的延伸」。


指出主題類型的圖示 作業主題



時間戳記圖示 前次更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_devwbsjaxrpcclient
檔名:twbs_devwbsjaxrpcclient.html