Web 服務工具 - 版本注意事項

1.0 簡介
2.0 支援的軟體和規格
3.0 前一版的變更
4.0 已知的問題
   4.1 Web 服務瀏覽器
   4.2 在 Linux 中,TCP/IP 監視伺服器無法運作
   4.3 私密 UDDI 登錄
   4.4 與 IBM SOAP 執行時期交互作業的能力
   4.5 從 DADX 檔產生 WSDL 文件
   4.6 Web 工具 JSP 產生器
   4.7 醫院實務
   4.8 使用 Universal Test Client
   4.9 在某些情況下,DADX Web 服務可以有多重輸出
   4.10 JDBC 驅動程式喜好設定只供 Linux 使用
   4.11 如果 XML Extender 沒有安裝在預設目錄中,需要更新 DAD 範例檔
   4.12 DADX Web 服務問題
   4.13 如果 Mozilla 和 Netscape 都在執行中,會無法正確顯示瀏覽器蹦現對話框
   4.14 DADX 產生支援
   4.15 從 4.0.x 匯入 Web services 檔之後所發生的 WSDL 錯誤
   4.16 搭配 GTK 使用 Linux 的問題
   4.17 搭配 AXIS 執行時期使用 Tomcat 伺服器
   4.18 使用 Web 服務指令行的問題
   4.19 在沒有現有伺服器的情況下建立 Web 服務
   4.20 產生 Web 服務範例應用程式
   4.21 匯入含 HTTP 基本鑑別的 WSDL 檔
   4.22 使用 WebSphere 5.0.2 版執行時期的問題
   4.23 利用資料來源資訊來設定 DADX 群組
   4.24 利用 Universal Test Client 載入用戶端定位器
   4.25 看不到資源喜好設定
   4.26 使用 Apache Axis 1.0 執行時期的問題
   4.27 無法編譯 Web 服務範例 JSP
   4.28 未定義 localhost 的錯誤
   4.29 使用 IBM SOAP 執行時期的永久限制
   4.30 Web 服務和用戶端使用不同執行時期
   4.31 在 Web 服務用戶端精靈中按一下「完成」
   4.32 Web 服務提要

1.0 簡介

Web 服務工具特性可讓您探索、建立及發佈 Java Bean、DADX、Enterprise Bean 和 URL Web 服務。 這個 Readme 檔會說明和下列 Web 服務工具功能相關聯的已知問題、限制以及解決方案。

2.0 支援的軟體和規格

這一版的 Web 服務工具可產生符合下列規格的程式碼:

這一版的 Web 服務工具支援下列項目:

如果您在工作台之外,利用 Mozilla 來啟動 WORF 測試環境,建議您至少使用 Mozilla 1.3.1 版。 版本更早的 Mozilla 瀏覽器無法正確顯示呼叫 Web 服務的輸出和說明檔。

DADX 執行時期需要 DB2 7.2 修正程式 6 或更新的版本,或 DB2 8.1 或更新的版本。

3.0 前一版的變更

以下是 5.1 版中的 Web 服務工具新特性:

4.0 已知的問題

4.1 Web 服務瀏覽器

4.2 在 Linux 中,TCP/IP 監視伺服器無法運作

在 Linux 中,TCP/IP 監視伺服器無法運作。 任何在 Web 服務和 Web 服務用戶端(如 Web 服務範例 JSP、Web 工具 Java Bean JSP 和 Universal Test Client)之間插入監視伺服器的嘗試,都會干擾用戶端和服務之間的通訊。 在服務的第一次回應時,尤其如此,用戶端會無限期當掉。 如果要在範例 JSP 或 UTC 中復原這個狀況,請關閉所有瀏覽器,再從 WebSphere Studio 之外啟動新的瀏覽器,輸入產生的範例 JSP 或 Universal Test Client 的適當 URL。

如果要在 Linux 中監視 SOAP 資料傳輸,請嘗試使用另一個監視工具,如可從下列網址下載的 Apache SOAP 執行時期所附的 TCP/IP 通道: http://ws.apache.org/soap/index.html.tool。 請啟動通道和呼叫 Web 服務用戶端作業。 要求和回應資料傳輸應該會出現在通道中,不過,用戶端會表現為暫停。 請將通道停止。 這會取消用戶端的暫停狀態,且會完成作業。 請重新啟動通道,再嘗試下個呼叫。

4.3 私密 UDDI 登錄

4.4 與 IBM SOAP 執行時期交互作業的能力

4.5 從 DADX 檔產生 WSDL 文件

4.6 Web 工具 JSP 產生器

DB2 驅動程式 db2java.zip 必須加入 WebSphere ws.ext.dirs 類別路徑中。 如果要加入 db2java.zip,請執行下列動作:

  1. 切換至「伺服器」視景(視景 > 開啟視景 > 伺服器)。
  2. 在「伺服器配置」窗格中,展開伺服器
  3. 按兩下 WebSphere 4.0 版測試環境。 這時會開啟實例編輯器。
  4. 在實例編輯器中,按一下路徑標籤,再按一下 WebSphere 特定類別路徑 (ws.ext.dirs) 區段中的新增外部 JAR,將 /home/db2inst1/sqllib/java12/db2java.zip 加入 WebSphere 路徑中。
  5. 選取檔案 > 儲存(檔案名稱)來儲存您的變更,再結束實例編輯器。

如果需要醫院實務文件的更新,請移至 WebSphere Developer Domain,按一下 Library

4.8 使用 Universal Test Client

當從「Web 服務」精靈啟動 Universal Test Client 時,JNDI 提供者 URL 會設定為 WebSphere 第 5 版的預設埠 2809。 如果您使用 WebSphere 第 4 版伺服器,或您已變更了埠號,您將無法搜尋 JNDI 目錄。 如果您試圖存取 JNDI 目錄,會出現下列錯誤:

IWAD0403E 無法建構 JNDI 樹:當解析起始 reference=WsnNameService 時捕捉到 CORBA.COMM_FAILURE

暫行解決方法如下:

  1. 按兩下您在使用的伺服器。這會呼叫伺服器內容。
  2. 選取「埠」標籤。
  3. 複製 ORB 引導埠。
  4. 在 Universal Test Client 中開啟 JNDI 內容視窗。
  5. 將引導埠貼在提供者 URL 文字輸入框中。

4.9 在某些情況下,DADX Web 服務中可以有多重輸出

我們的工具通常不支援 Web 服務中的多重輸出。 不過,在 DADX Web 服務的情況下,如果使用文件樣式群組內容設定為 true,就可以有多重輸出。 在這個情況下,當文件樣式true 時,就會將多重輸出組合成單一 XML 文件。

4.10 JDBC 驅動程式喜好設定只供 Linux 使用

已新增了新的 Web 服務喜好設定(視窗 > 喜好設定 > Web 服務)種類,稱為 JDBC 驅動程式。 雖然所有平台都可以取得這個喜好設定,但它只供 Linux 使用。 在 Linux 中,可能很難判斷含有 JDBC 驅動程式的 JAR 檔的位置。 因此,新增了這個喜好設定頁面,讓您能夠指定要使用的 JAR 檔。 目前,只有 DADX 驗證碼會使用這個 JAR 檔資訊。

4.11 如果 XML Extender 沒有安裝在預設目錄中,需要更新 DAD 範例檔

可能需要修改 WSinstall_dir\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples 目錄中的 DAD 檔來反映您的特定系統配置。

在檔案頂端附近有一行類似下面這行:

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

如果 XML Extender 已被載入 c:\dxx 以外的位置,就必須更新這個字串來反映實際的位置。 這也適用於 Linux 機器,在 Linux 機器中,這個位置通常是 /usr/IBMdb2xml

4.12 DADX Web 服務問題

4.13 如果 Mozilla 和 Netscape 都在執行中,會無法正確顯示瀏覽器蹦現對話框

如果 Mozilla 和 Netscape 同時在執行中,會無法正確顯示 Web 服務瀏覽器蹦現對話框。 蹦現對話框包括「瀏覽 WSDL」對話框和「瀏覽種類」對話框。 如果要暫時解決這個問題,請不要同時使用 Mozilla 和 Netscape 這兩種瀏覽器。

4.14 DADX 產生支援

雖然「產生 DADX」精靈列出使用者定義的功能,但目前不支援從使用者定義的功能產生 DADX。 目前只支援從 DAD 檔、儲存程序和 SQL 陳述式來產生 DADX。 選取 UDF 會產生簡式 DADX Skeleton 檔。

4.15 從 4.0.x 匯入 Web services 檔之後所發生的 WSDL 錯誤

如果您已從 4.0.x 匯入 Web services 檔,可能會出現下列錯誤訊息:

錯誤。定義給 'result' 組件類型的 'anyElement' 值無效。 類型宣告必須參照綱目中所定義的有效值。

錯誤。定義給 'return' 組件元素的 'findPatientResult' 值無效。 元素宣告必須參照綱目中所定義的有效值。

錯誤。定義給 'response' 組件元素的 'findPatientResponse' 值無效。 元素宣告必須參照綱目中所定義的有效值。

暫行解決方法如下:

  1. 刪除 WSDL 檔。
  2. 重新執行「Web 服務」精靈來重新產生 Web 服務。

4.16 搭配 GTK 使用 Linux 的問題

4.17 搭配 AXIS 執行時期使用 Tomcat 伺服器

4.18 使用 Web 服務指令行的問題

4.19 在沒有現有伺服器的情況下建立 Web 服務

4.20 產生 Web 服務範例應用程式

4.21 匯入含 HTTP 基本鑑別的 WSDL 檔

當從有相關匯入項目且受到 HTTP 基本鑑別保護的 WSDL 檔產生 Skeleton 或用戶端時, 使用者會見到一則無法解析 WSDL 檔的錯誤訊息,即使輸入的使用者 ID 和密碼正確也是如此。 問題在於這個使用者 ID 和密碼只能用來擷取原始 WSDL 檔,不能擷取它匯入的檔案。

如果要解決這個問題,使用者可以先將 WSDL 檔和所有匯入的檔案下載在工作台中,再從下載的 WSDL 檔產生 Skeleton 或用戶端。

4.22 使用 WebSphere 5.0.2 版執行時期的問題

4.23 利用資料來源資訊來設定 DADX 群組

如果利用 WebSphere Application Server 5.0 版來控管 DADX Web 服務,DADX 群組的 group.properties 檔應該使用下列 initialContextFactory 內容:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

另外,含有 DADX 群組之專案的 web.xml 檔應該新增下列內容。 (假設資料來源 JNDI 名稱是 jdbc/hospital。)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

4.24 利用 Universal Test Client 載入用戶端定位器

當 Universal Test Client 無法預載 WebSphere 5.0.2 版或 Axis 執行時期所產生的用戶端載入器類別時,這是因為服務 Web 專案中的 Java Bean 類別名稱與用戶端 Web 專案中的 SEI 類別名稱相同。 如果要暫時解決這個問題,請執行下列動作:

  1. 從工作區中移除用戶端 Web 專案
  2. 在不同 EAR 下建立用戶端 Web 專案,EAR 專案名稱必須按照字母順序,在服務 EAR 專案名稱之前。 比方說,如果服務 EAR 專案名稱是 "DefaultEAR",請建立稱為 "ClientEAR" 的新 EAR 專案名稱。
  3. 重新執行 Web 服務精靈。

 

4.25 看不到資源喜好設定

當利用 WebSphere 5.0.2 版和 Axis 執行時期來建立 Web 服務時,看不到改寫檔案、建立資料夾和自動移出檔案喜好設定。 建立資料夾一律可以執行,永遠不會啟用自動移出檔案。

當使用 WebSphere 5.0.2 版執行時期時,一律會改寫 WSDL 檔、SEI 和部署成品(序列化常式和解除序列化常式)。 一律不會改寫開發成品(服務 Bean、複式類型 Bean、保留區和 Helper 類別)。 不過,如果有部署描述子的話,使用者一律會收到改寫部署描述子的警告。 使用者可以選擇「確定」來改寫部署描述子,繼續執行實務,也可以選擇「取消」來避免改寫描述子。

當使用 Apache Axis 1.0 執行時期時,Axis 發射器每次都會重新產生所有伺服器/用戶端 Java 檔、deploy.wsdd 和 undeploy.wsdd。 服務產生實務的 WSDL2Java 只有在 Skeleton 實作檔不存在時,才會產生 Skeleton 實作檔。 如果這個實作已經存在,不會改寫它。

4.26 使用 Apache Axis 1.0 執行時期的問題

4.27 無法編譯 Web 服務範例 JSP

當從 WSDL 產生 Web 服務 Skeleton 或 Proxy,且 WSDL 的一個 <service> 元素和 <port> 元素同名時,請勿使用範例 JSP 作為測試用戶端。 產生的範例 JSP 含有錯誤,不會進行編譯。 在伺服器上執行範例 JSP 的任何嘗試都會在瀏覽器中出現無法載入範例 JSP 的「錯誤 500」,在伺服器主控台中出現 Servlet 儲存器無法編譯範例 JSP 的異常狀況。

4.28 未定義 localhost 的錯誤

在產生 WSDL 期間,如果電腦中沒有定義主機名稱 "localhost",Web 服務建立精靈可能會失敗。 如果沒有定義 "localhost",UTC 也可能無法順利啟動。

在 Windows 中,[INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts 檔中必須有下列項目:

127.0.0.1 localhost

在 Linux 中,/etc/hosts 檔中必須有下列項目:

127.0.0.1 localhost

4.29 使用 IBM SOAP 執行時期的永久限制

IBM SOAP 執行時期主要應該用在向下相容。 強力建議您在所有正式作業的用途上,搭配 IBM WebSphere 5.0.2 執行時期來使用 Web 服務精靈。 當搭配 IBM SOAP 執行時期來使用 Web 服務精靈時,使用者可能會遇到下列永久限制:

4.30 Web 服務和用戶端使用不同執行時期

如果您從 Java Bean 或 EJB 建立 Web 服務,且選擇 IBM SOAP 作為服務執行時期,選擇 Apache Axis 1.0 作為用戶端執行時期,可能會出現下列錯誤:
找不到 WSDL

如果要避免這個問題,請先建立 Web 服務,不要選擇產生 Proxy。 之後,再從產生的 WSDL 檔建立 Web 服務用戶端。

4.31 在 Web 服務用戶端精靈中按一下「完成」

當您執行 Web 服務用戶端精靈時,如果使用者按一下「用戶端環境配置」頁面中的「完成」按鈕,會出現下列錯誤:

無法解析 "null"

暫行解決方法是按這一頁和下一頁的「下一步」,再按「完成」。

4.32 Web 服務提要

在「建立、測試和驗證 WS-I 標準 Web 服務提要」和「從 WSDL 檔提要建立 Web 服務」中, 如果您使用 wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples 中的 HelloService.wsdl 檔, 請依照下列方式,根據不同的執行時期來修改服務埠位置:

IBM Soap:

location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"

Apache Axis 或 WebSphere 5.0.2 執行時期

location="http://localhost:9080/HelloWorldSample/services/Hello_Port"

如果您匯入自己的 wsdl 檔,請確定已依照上述說明,根據所選執行時期來適當設定位置。

返回主 Readme 檔