利用 IBM SOAP 執行時期環境從 DADX 檔建立 Web 服務

「文件存取定義」(DADX) 是 XML 文件格式,它指定如何使用由 DAD 檔和 SQL 陳述式所定義之作業設定來建立 Web 服務。DADX Web 服務可讓您在標準 Web 服務中包裝 DB2® Extender 或一般的 SQL 陳述式。 DADX 檔定義 DADX 執行時期環境所能使用的作業,以及 SQL 作業的輸入和輸出參數。

必備條件:
  1. 瞭解和安裝 DB2 Universal Database™ Personal Edition 7.2 版,含修正程式 6 或更新的版本。
  2. 對於需要 DB2 XML Extender 的 DADX Web 服務,瞭解和安裝 DB2 Universal Database XML Extender 7.2 版,含修正程式 6 或更新的版本。
  3. 如果您是使用 Apache Jakarta Tomcat Servlet 儲存器做為伺服器, 您必須安裝它、配置其實例,然後建立以它為目標的 Web 專案(如 建立 WebSphere® 伺服器和 Web 專案所述)。
  4. 如果您是使用 WebSphere 伺服器, 請建立目標為適當伺服器的動態 Web 專案(如建立 WebSphere 伺服器和 Web 專案所述)。強力建議您先啟動伺服器,再執行 Web 服務精靈,因為可能需要好幾分鐘才會啟動 WebSphere Application Server,這會隨著電腦速度而不同。 如果要啟動伺服器,請在「伺服器」視圖中選取它(視窗 > 顯示視圖 > 伺服器),按一下滑鼠右鍵,然後按一下啟動
如果需要建立 Web 專案的詳細資訊,請參閱 Web 應用程式開發文件。

使用「Web 服務 DADX 群組配置」精靈來配置資料庫連線。 然後,建立一個 DADX 檔案。您可以使用 XML 工具來建立 DAD 和 DADX 檔。 如果需要從 SQL 產生 DADX 檔的詳細資訊,請參閱產生 DADX 檔案。 您也可以使用任何文字編輯器來撰寫 DADX 檔案。接著,請使用「Web 服務精靈」精靈來產生 WSDL 文件、部署描述子、用戶端 Proxy、內容對映、部署對映以及測試 DADX Web 服務,來準備將 Web 服務發佈至 UDDI 登錄。

Web 服務 DADX 群組精靈協助您建立 DADX 群組。DADX 群組包含連線(JDBC 和 JNDI)以及其他群組中 DADX 檔內共用的資訊。完成建立 DADX 群組後,使用 Web 服務精靈來協助您建立和部署新 Web 服務。一旦部署了 Web 服務,精靈會協助您產生用戶端 Proxy 和範例應用程式來測試新 Web 服務。在完成測試後,您可以使用「匯出」精靈將 Web 服務發佈至 UDDI Business Registry。

如果要確定已在 DB2 中已經啟用 JDBC 2.0 版:

  1. 停止所有 DB2 程序。
  2. 在指令提示畫面中,從 DB2_installdir\SQLLIB\java12 了解和安裝。其中 DB2_installdir 是 DB2 的安裝路徑。
  3. 重新啟動系統,以重新啟動 DB2。

關於 DB2 的詳細資訊,請參閱 www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main

附註®

如果需要使用「Web 服務瀏覽器」發佈 Web 服務的詳細資訊,請參閱「發佈 Web 服務」。

建立 DADX 群組

  1. 在「導覽器」視圖中,選取要在其中建立 DADX 群組的 Web 專案。
  2. 按一下檔案 > 新建 > 其他 > Web 服務來顯示各種 Web 服務精靈。
  3. 選取 Web 服務 DADX 群組配置精靈。按下一步
  4. 選取您的Web 專案。按一下新增群組。輸入您 DADX 群組的名稱。按一下確定
  5. 將您的 Web 專案展開,以便顯示您的 DADX 群組。用滑鼠右鍵按一下您的 DADX 群組。選取群組內容。將 DB URL 變更為 jdbc:db2:DATABASE_NAME,其中 DATABASE_NAME 是您資料庫的名稱。請輸入具有資料庫存取權之使用者的使用者 ID 和密碼。 輸入其他任何必要參數:
    環境定義 Factory
    使用資料來源來連接資料庫時,這個值指定要使用的環境定義 Factory 類別。在 WebSphere 伺服器中執行的建議值是 com.ibm.websphere.naming.WsnInitialContextFactory。
    資料來源
    使用資料來源來連接資料庫時,這個值指定要使用的資料來源名稱。
    DB 驅動程式
    利用 JDBC 來連接資料庫時,這個值指定要使用的資料庫驅動程式類別。
    DB URL
    利用 JDBC 來連接資料庫時,這個值指定資料庫的資料庫 URL。
    使用者 ID 和密碼
    這些欄位用來指定透過資料來源或 JDBC 連接時所需要的鑑別資訊。
    名稱空間表
    這個欄位指定 DADX 執行時期必須使用的名稱空間表格檔案名稱。這個檔案定義 DTD ID 及其關聯的 XSD 名稱空間與位置之間的對映。 附註:如果 DADX 檔案參照 DAD 檔案,則必須在這個檔案中建立登錄。
    自動重新載入
    這個欄位指定 DADX 執行時期是否應該重新載入已經在伺服器上變更過的資源,例如,DADX 檔案。
    重新載入間隔
    這個值指定 DADX 執行時期檢查資源變更的時間間隔(以秒計)。附註:這個項目要在自動重新載入設成 true 時才可使用。
    群組名稱空間 URI
    這個欄位指定要放置在這個 DADX 群組中與 DADX 檔案關聯之所有名稱空間開頭的名稱空間 URI 字首。 如果這個欄位為空白,預設字首將是 http://tempuri.org。
    啟用 XML CLOB
    這個欄位指定是否應使用 DB2 XML Extender CLOB 特性。在使用 DB2 XML Extender 7.2 版或更新版本時,這個值應該設成 true。 對於較舊版本,應該設成 false。
    使用文件樣式
    這個欄位指示 DADX 執行時期使用文件樣式還是 RPC 樣式。true 值指示應使用文件樣式。否則為使用 RPC 樣式。
    按一下確定
  6. 按一下完成。這時會在 WebProject\JavaSource\groups 中產生您的 DADX 群組。

從 DADX 建立 Web 服務

  1. 建立 DADX 檔,或將它匯入 DADX 群組中:WebProject\JavaSource\groups\DADXGroup,其中 DADXGroup 是您剛在上述步驟中建立的群組。 重要事項:任何相對 DAD 檔也都必須在這個資料夾中。在執行時期,這些檔案都應該在這裡。如果不是如此,可能會發生資料庫或伺服器錯誤。如果需要 DAD 或建立 DADX 檔的詳細資訊,請參閱 XML 工具。
  2. 選取您的 DADX 檔。
  3. 按一下檔案 > 新建 > 其他。接著選取 Web 服務以便顯示各種 Web 服務精靈。然後選取 Web 服務精靈。按下一步
  4. 在「 Web 服務」頁面中,從 Web 服務類型下拉清單中選取 DADX Web 服務。您可以選擇性地選擇執行下列動作:
    • 在 Web 專案中啟動 Web 服務 - 如果您沒有選取這個選項,您必須手動啟動 Web 服務。您必須選取這個選項,才能啟用這個頁面中的其他選項。
    • 啟動 Web 服務瀏覽器,將 Web 服務發佈至 UDDI 登錄。
    • 產生 Web 服務的 Java™ Bean 用戶端 Proxy。產生的 Java Bean 用戶端 Proxy 會提供指向 Web 服務的遠端程序呼叫介面。
    • 測試 Web 服務 - 這可讓您在產生 Proxy 之前,在 Web 服務瀏覽器中測試 Web 服務。
    • 透過 TCP/IP 監視器傳送 Web 服務的資料傳輸,這可讓您監看 Web 服務所產生的 SOAP 資料傳輸, 並測試此一資料傳輸是否符合 WS-I 標準。
  5. 「服務部署配置」頁面:指定伺服器和用戶端部署設定。
    1. 按一下編輯,選取 IBM® SOAP 執行時期環境,再選取要在其中執行 Web 服務和 Web 服務用戶端的伺服器。
    2. 接受預設 Web 專案和要在其中建立 Web 服務的 EAR。確定所選專案中有內含 DADX 檔的 DADX 群組。 如果它們還不存在,精靈會自動建立它們。 附註:您必須接受預設專案名稱,否則精靈可能無法進行作業。
    3. 接受要在其中建立 Web 服務用戶端之專案的類型和名稱。 附註:您必須接受預設專案名稱,否則精靈可能無法進行作業。
    4. 選取現有的 EAR 或輸入唯一名稱,將 Web 服務用戶端關聯於 Web 服務 EAR 以外的 EAR。附註:在 Web 服務和 Web 服務用戶端上選取不同的 EAR,可以減少發生執行時期錯誤的機會,但會使用比較多的系統資源。
  6. 「選取 Web 服務 DADX 檔」頁面:輸入您要從中建立 Web 服務的 DADX 檔名稱。
  7. 「產生 Web 服務連結 Proxy」畫面:如果您選擇要產生 Proxy,請選擇連結和 Proxy 選項。
  8. 「Web 服務用戶端測試」頁面:請利用這個頁面來選取下列選項:
    • 選取您的測試機能。您可以在 Universal Test Client 或 Web 服務瀏覽器中測試產生的 Proxy, 也可以產生範例 Web 服務 JSP。
    • 如果您選擇利用 JSP 來測試 Proxy,您可以選取 JSP 要放在其中的資料夾,且您可以選擇要併入 JSP 的方法。
    • 選取在伺服器中執行測試來自動啟動伺服器。
  9. 「Web 服務發佈」頁面:選擇是否要將這個 Web 服務發佈在 UDDI 登錄中。按一下完成
  10. 建立好 Web 服務之後,會發生下列情況,這會隨著您選取的選項而不同:
    • 如果您選擇利用 Web 服務 JSP 來測試產生的 Proxy, 該 Proxy 就會於 Web 瀏覽器中的下列 URL 啟動: http://localhost: port/WebProjectClient/sampleBeanName/ WebService/TestClient.jsp。 您可以選取一個方法、輸入方法的值,然後按一下呼叫,來利用這個範例應用程式測試 Web 服務。方法的結果會顯示在結果窗格中。
    • 如果您選擇利用 Universal Test Client 來測試產生的 Proxy,它將在瀏覽器視窗的下列 URL 啟動: http://localhost:9080/UTC/preload?object=proxy.soap. ProxyNameProxy。 請在「參照」窗格的「物件參照」下,展開 Proxy 來顯示 Web 服務的方法。按一下您要測試的方法,在「參數」窗格中輸入值,再按一下呼叫。下面會產生結果。
    • 如果您選擇要利用「Web 服務瀏覽器」測試 Web 服務,這時會開啟「瀏覽器」。請選取您要測試的作業,輸入必要的資訊,再按一下執行。結果會顯示在「狀態」窗格中。
    • 如果您已選擇發佈 Web 服務,將會啟動 Web 服務瀏覽器來顯示將您的 Web 服務發佈至 IBM UDDI Test Registry 時所需要的頁面。請遵循發佈 Web 服務中的指示來完成這項作業。
如果需要 DB2 XML Extender 和 DADX 規格的詳細資訊,請參閱 www.ibm.com/software/data/db2/extenders/xmlext/library.html

如果您是在遠端伺服器中執行 DADX,您必須手動將 worf.jarplugins/com.ibm.etools.webservice.consumption.soap_version/runtime 資料夾複製到遠端機器上的某個位置。 您接著必須更新遠端伺服器的 classpath,以便參照這個 worf.jar 檔。

重要事項

  • DADX Web 服務經常傳回所產生之範例應用程式無法處理的複式類型。 如果要測試傳回 DOM 元素的方法,請呼叫 Proxy 的 DOM 元素方法,而不是 Proxy 的 Java Bean 方法。
  • 您不可以在 用於產生 WebSphere 5.1 版或 Apache Axis 用戶端的 WSDL 檔案中對 RPC 樣式訊息混合使用 SOAP 編碼和文字編碼。因此,將無法從針對使用 RPC 之 DADX Web 服務而產生的 WSDL 檔案正確建立 WebSphere 5.1 版 或 Apache Axis 用戶端。如果要防止這個情況,請利用 DOC 樣式來建立 DADX Web 服務。5.1 版 WebSphere 執行時期可以從這個 WSDL 建立用戶端,不會有問題。如果要使用 DOC 樣式 DADX Web 服務,請將 DADX 群組的 group.properties 檔中之 useDocumentStyle 參數設成 true。 您也可以利用 DADX 群組配置精靈來完成這項作業。
  • 為了改進與 Microsoft® Web 服務的交互作業能力,DADX 執行時期現在可以產生文件樣式 Web 服務。如果要啟用這個特性,請利用 DAXD 配置精靈來開啟要使用的 DAXD 群組的內容頁面。在內容頁面底端,請確定「使用文件樣式」輸入欄位已設定為 true。
  • DADX 綱目已不再將 WSDL 文件標示用在文件說明上。現在,這個標示是 DASX 綱目的一部分。這可能會使還沒有移轉使用更新綱目的舊版 DADX 檔發生驗證問題。 比方說,如果舊版 DADX 檔含有下列 XML:

      <wsdl:documentation  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">     提供 myco.com 的零件訂購資訊的查詢。   </wsdl:documentation>

      新的文件項目是:

      <documentation>     提供 myco.com 的零件訂購資訊的查詢。   </documentation>    

  • 如果您的方法包括範例不支援的類型,如:陣列、索引化內容和集合,就會省略範例中的方法,且會出現警告訊息。
  • 當儲存程序用來建立 DADX Web 服務時,儲存程序參數不可以含有底線。例如,Java 儲存程序看起來如下:
     public static void test ( String class_code,
                               short day,
                               java.sql.Time starting,
                               java.sql.Time ending ) throws SQLException, Exception
    在本情況中,class_code 參數會導致 DADX 執行時期失敗。 要避免這個問題,請使用不加底線的參數名稱。
  • 請確定您選定要轉換成 Web 服務的 DADX 檔包含在 WebProject\JavaSource\groups\ DADXgroup 目錄中。任何相關的 DAD 檔也必須在這個資料夾中。在執行時期,這些檔案都應該在這裡。如果不是如此,可能會發生資料庫或伺服器錯誤。
  • 您可以使用「DADX 檔案」精靈在 DADXGroup 資料夾中產生 DADX 檔案。如果需要建立 DADX 檔的詳細資訊,請參閱 XML 工具。
  • 通常不支援單一 Web 服務中的多重輸出。不過,如果 use document Style group 內容設為 true,DADX Web 服務會支援多重輸出。在這個情況下,會將多重輸出合併在單一 XML 文件中。
  • 在 DADX 群組中,您可以指定一個 JDBC Net Driver。 如果是 DB2,Net Driver 類別是 COM.ibm.db2.jdbc.net.DB2Driver。 如果是舊版 DB2,就必須將 db2java.zip 新增至伺服器類別路徑中,這個 zip 檔含有驅動程式。不過,當使用 DB2 8.1 版和更新的版本時,也必須將 db2jcc.jar 檔新增至伺服器類別路徑中。這個檔案通常位在 db2java.zip 檔的相同目錄中。請確定機器上的 DB2 用戶端層次和所連接的 DB2 伺服器的修正套件層次相同。
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.