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


1.0 限制
   1.1 將 WebSphere 第 6 版 DB2 私密 UDDI 登錄部署在現有的私密 UDDI 登錄上之後,便無法存取
   1.2 *WS-I 附件設定檔 1.0 驗證無法使用
   1.3 *精靈一律使用現有專案的 EAR,且會忽略其他 EAR 的選項
   1.4 精靈的「監視器」勾選框可能與現有的監視器衝突
   1.5 *不可選擇「Web 服務使用者定義函數」用戶端 Proxy 類型
   1.6 *只能從 J2EE 視景使用啟動 Web 服務瀏覽器
   1.7 *當建立 DADX Web 服務時,Web 服務精靈會出現 IWAB0107E 錯誤
   1.8 *當所選的目標伺服器不存在時,Web 服務精靈會出現 IWAB0534E 錯誤
   1.9 *當未安裝目標伺服器時,Web 服務精靈會出現 IWAB0213E
   1.10 *StockQuote Axis 範例只在 Tomcat 5.0 中執行
   1.11 *對於 J2EE 1.3 和 J2EE 1.4 應用程式而言,以複式類型參數產生給 Web 服務的 WSDL 檔可能會不同
   1.12 *變更新 EJB 專案的預設用戶端專案名稱
   1.13 *點對點實務在啟用安全的 WebSphere Application Server 5.0 版和 5.1 版中提供 restartModule 錯誤蹦現框
   1.14 路由器專案和 EJB 專案必須在相同的 EAR 中
   1.15 利用管理主控台能夠檢視 LooseApps,但不能修改
2.0 已知的問題
   2.1 *使用 IBM SOAP Skeleton Web 服務的完整實務失敗
   2.2 *Skeleton 和用戶端實務無法使用受 HTTP 基本鑑別保護的 WSDL
   2.3 *在執行端點啟用程式之後,JMS 路由器專案中出現錯誤訊息
   2.4 *指導教學:從 Java Bean 建立 Web 服務不會建立正確的套件名稱
   2.5 刪除使用者定義的分類架構不會從私密 UDDI 登錄中刪除 tModel
   2.6 *範例展示區中的 Web 服務範例可能會匯入,但出現錯誤
   2.7 *當 WSDL 沒有任何 SOAP 連結時,用戶端實務會擲出異常狀況
   2.8 *在 Web 服務精靈後續的呼叫中,Skeleton 實務並未重新整理產生的 Java 檔
   2.9 *在 UDDIPublish/UDDIUnpublish -profileName <profile name> 中擲出 NullPointerException

1.0 限制

1.1 將 WebSphere 第 6 版 DB2 私密 UDDI 登錄部署在現有的私密 UDDI 登錄上之後,便無法存取

您可能會遇到的問題是,在將 WebSphere 第 6 版 DB2 私密 UDDI 登錄部署在現有的 WebSphere 第 6 版私密 UDDI 登錄上之後,便無法存取。在 UDDI 部署精靈結束時,會在伺服器中執行 UDDI 應用程式,但不會辨識伺服器配置。 症狀是 UDDI EAR 無法與 DB2 UDDI 登錄互動。 這表示針對 UDDI 應用程式執行的所有指令都會失敗並出現錯誤(起始設定登錄節點時,發生錯誤)。 其中包括新增使用者定義的分類架構,這會擲出 Axis 錯誤。

暫行解決方案:
1. 預防方法:在部署 WebSphere 第 6 版 DB2 UDDI 登錄之前,請利用 UDDI 精靈來移除任何先前安裝的 UDDI 登錄。 之後,再重新呼叫 UDDI 精靈來部署 WebSphere 第 6 版 DB2 私密 UDDI 登錄。
2. 如果要修正已安裝的登錄:如果您將 WebSphere 第 6 版 DB2 UDDI 登錄安裝在先前的登錄上,發生問題,您可以從伺服器管理主控台中停止 UDDIRegistry 應用程式,再重新啟動。

1.2 *WS-I 附件設定檔 1.0 驗證無法使用

當 WSDL WS-I 驗證設為「建議」或「必要」時,在「視窗 -> 喜好設定 -> Web 服務 -> WS-I 標準」和「專案內容」中找到的 WS-I AP 標準層次設定對它無效。 依預設,這些喜好設定會設為「忽略」。

沒有暫行解決方法。WS-I WSDL 驗證器用來測試您的 WSDL 是否符合設定檔的「WS-I 附件設定檔測試確認文件」,WS-I 組織並未及時公佈它,以便併入這個 IBM Rational Developer 產品版本中。在「測試確認文件」公佈之後,會發出啟用喜好設定的臨時修正程式。

附註:6.0.0.1 版已修正這個問題。

1.3 *精靈一律使用現有專案的 EAR,且會忽略其他 EAR 的選項

如果服務或用戶端專案在啟動「Web 服務」或「Web 服務用戶端」精靈之前就已存在,則不論「服務部署配置」或「用戶端環境配置」頁面的所選項目為何,精靈一律會使用已包含現有專案的 EAR。 如果在啟動任何一個精靈之前,未將現有的專案新增至 EAR 中,精靈會失敗並出現下列錯誤:

IWAB0213E 啟動伺服器時,發生錯誤
詳細資料:
IWAB0213E 啟動伺服器時,發生錯誤。
org.eclipse.core.runtime.CoreException: WebSphere 第 5 版只支援 J2EE 1.2 和 1.3 企業應用程式。
at com.ibm.etools.websphere.tools.v51.internal.WASTestServerWorkingCopy.modifyModules(Unknown Source)
...

如果要暫行解決這項限制,請確定在啟動精靈之前,已將專供 Web 服務或 Web 服務用戶端使用的任何專案新增至 EAR 中。這個規則的唯一例外,是目標為 Tomcat 伺服器的專案,因為這些專案不需要新增至 EAR 中。

附註:6.0.0.1 版已修正這個問題。

1.4 精靈的「監視器」勾選框可能與現有的監視器衝突

如果您手動建立了目標伺服器的監視器(使用「伺服器」標籤中的「監視 -> 內容...」),然後在「Web 服務」精靈的第一頁中執行「Web 服務」精靈,選取「監視 Web 服務」,在處理期間,精靈可能會失敗並出現下列錯誤:

IWAB0014E 發生非預期的異常狀況。空值
java.lang.NullPointerException
at com.ibm.etools.webservice.consumption.command.common.CreateMonitorCommand.hasContentWebServices(CreateMonitorCommand.java:114)
...

如果要暫行解決這個問題,請停用「監視 Web 服務」來重新執行精靈,或在伺服器中開啟「監視 -> 內容...」,移除監視器,再啟用「監視 Web 服務」來重新執行精靈。

1.5 *不可選擇「Web 服務使用者定義函數」用戶端 Proxy 類型

在「Web 服務」和「Web 服務用戶端」精靈的第一頁中,有兩個用戶端 Proxy 類型可供使用:"Java Proxy"(通常是預設值)和「Web 服務使用者定義的函數」。 如果您選取「Web 服務使用者定義的函數」並試圖完成這個精靈或完成「選取 Web 服務」頁面下的進度,則這個精靈會失敗,且會出現「IWAB0234E 發生內部錯誤。詳細資料:空值。」的錯誤。

暫行解決方法:請勿利用 Web 服務精靈來建立 Web 服務使用者定義函數。 相反地,請選取「新建 -> 其他 -> 資料 -> Web 服務使用者定義的函數」。

附註:6.0.0.1 版已修正這個問題。

1.6 *只能從 J2EE 視景使用啟動 Web 服務瀏覽器

除了 J2EE 視景,您無法從任何其他位置使用「啟動 Web 服務瀏覽器」按鈕和「執行 > 啟動 Web 服務瀏覽器」功能表項目。

請開啟 J2EE 視景和啟動 Web 服務瀏覽器,適用的話,請在工作區中,用滑鼠右鍵按一下某份 WSDL 文件或某項 Web 服務,再選取「Web 服務 -> 利用 Web 服務瀏覽器測試」。

附註:6.0.0.1 版已修正這個問題。

1.7 *當建立 DADX Web 服務時,Web 服務精靈會出現 IWAB0107E 錯誤

在啟用 Web 服務 Proxy 產生作業的 WebSphere Application Server 第 5 版的建立 DADX 或 URL Web 服務的實務中,精靈可能會失敗並出現類似下列錯誤:

IWAB0107E 試圖分析 WSDL 組件時,發現錯誤:輸入。
WSDLException: faultCode=PARSER_ERROR: 載入 http://localhost:9080/SomeProject/SomeGroup/something.dtd/XSD 時,發生問題:已拒絕連線:連接:包裝異常狀況
java.net.ConnectException: 已拒絕連線:連接
...

發生這個問題,是因為精靈未及時重新啟動伺服器,以便使 Web 服務用戶端程式碼產生器能夠從伺服器擷取 WSDL 或 XSD。 您至少可以用兩種方式來避免這個問題:

  1. 在「Web 服務」精靈中,選擇不是代管 Web 服務的伺服器來代管您的 Web 服務用戶端。
  2. 在「Web 服務」精靈中,停用 Proxy 程式碼的產生。 請在「Web 服務」精靈完成之後,再個別執行「Web 服務用戶端」精靈。

附註:6.0.0.1 版已修正這個問題。

1.8 *當所選的目標伺服器不存在時,Web 服務精靈會出現 IWAB0534E 錯誤

當利用 Web 服務精靈來建立尚不存在之伺服器的 Web 服務時,精靈會建立這個伺服器,但可能會失敗並出現下列錯誤:

「IWAB0534E 無法將 EAR 專案新增至伺服器配置中。」
詳細資料:java.lang.IllegalArgumentException:
at java.lang.Throwable.<init>(Throwable.java:59)
at java.lang.Throwable.<init>(Throwable.java:73)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.runtime.Status.setMessage(Throwable.java)
at org.eclipse.core.runtime.Status.<init>(Unknown Source)
at com.ibm.wtp.server.core.internal.ServerWorkingCopy.modifyModules(Unknown Source)
...

如果要暫時解決這個問題,請重新啟動精靈,再重試一次。 精靈會使用前一個精靈在失敗之前已順利建立的伺服器。

附註:6.0.0.1 版已修正這個問題。

1.9 *當未安裝目標伺服器時,Web 服務精靈會出現 IWAB0213E

當利用 Web 服務精靈來建立專案中的 Web 服務,且專案的目標伺服器類型尚未安裝,精靈可能會失敗,並出現下列訊息:

IWAB0213E 啟動伺服器時,發生錯誤。
org.eclipse.core.runtime.CoreException: 未正確啟動名稱為 WebSphere 5.1 版測試環境 @ localhost 的伺服器。 請檢查主控台來找出錯誤訊息。
at com.ibm.wtp.server.core.internal.Server.synchronousStart(Unknown Source)
...

發生這個問題,是因為精靈會在其「伺服器部署配置」或「用戶端環境配置」頁面中預設專案的目標伺服器,但並未先判斷目標伺服器是否已安裝且可以使用。 當利用產品的其他安裝架構來匯入其他使用者所產生的專案時,最可能出現這個情況。 暫行解決方法是在「部署伺服器配置」或「用戶端環境配置」頁面中,明確選取在工作區中的伺服器。

附註:6.0.0.1 版已修正這個問題。

1.10 *StockQuote Axis 範例只在 Tomcat 5.0 中執行

在匯入 StockQuoteAxis 範例之後,如果您試圖將 StockQuoteAxis 和 StockQuoteAxisClient 專案新增至 Tomcat 4.0 或 4.1 伺服器中,會出現「沒有任何專案可在伺服器中新增或移除」訊息。 如果您試圖在 Tomcat 4.0 或 4.1 伺服器中執行範例 JSP,便會出現「所選伺服器不支援 J2EE Web 模組規格的 1.4 版」訊息。

發生這個問題,是因為已建立範例中要在 J2EE 1.4 / Servlet 2.4 執行時期上執行的 StockQuoteAxis 和 StockQuoteAxisClient Web 專案,而 Tomcat 4.0 和 Tomcat 4.1 都不支援 Servlet 2.4 規格。 有兩個暫行解決方案:

  1. 在 Tomcat 5.0 伺服器中執行範例。
  2. 遵循範例展示區中的「建置」指示,選擇 Tomcat 4.0 或 4.1 作為 Web 專案的目標。

附註:6.0.0.1 版已修正這個問題。

1.11 *對於 J2EE 1.3 和 J2EE 1.4 應用程式而言,以複式類型參數產生給 Web 服務的 WSDL 檔可能會不同

如果您建立 J2EE 1.3 由下而上 Web 服務,且其中包含複式類型參數,含 getter 之參數類別中的每個欄位都會對映至 WSDL 中,在 xsd:complexType 之下的子項元素。 如果要完全符合 J2EE 1.4 中的 JAX-RPC 1.1 規格,就會改變這個行為。 每個讀寫內容(如 java.beans.Introspector 類別所識別)都會對映至 xsd:complexType 中的一個元素。

附註:6.0.0.1 版已修正這個問題。

1.12 *變更新 EJB 專案的預設用戶端專案名稱

當建立 Skeleton EJB Web 服務,且其中所需要的目標 EJB 專案尚不存在,Web 服務精靈會自動建立 EJB 專案及相關聯的 EJB 用戶端 JAR。例如:EJBProjectNameEJBProjectNameClient。 這個 EJB 用戶端 JAR 專案名稱與 Web 服務精靈試圖建立 Web 服務用戶端時所選取的預設 Web 服務用戶端專案名稱衝突。 這會在 Web 服務用戶端專案中發生錯誤。 如果 Web 服務用戶端專案是一個 Web 專案,用戶端 EAR 中會出現錯誤,如果您要求精靈產生範例 JSP 測試機能,也會出現「複製 Web 服務公用程式 JAR 時發生錯誤」。

暫行解決方法是挑選不同於 EJBProjectNameClient 的名稱給 Web 服務用戶端專案(當 EJB 專案 EJBProjectName 不存在時),或在啟動 Web 服務精靈之前建立 EJB 專案。

附註:6.0.0.1 版已修正這個問題。

1.13 *點對點實務在啟用安全的 WebSphere Application Server 5.0 版和 5.1 版中提供 restartModule 錯誤蹦現框

如果 WebSphere Application Server 5.0 版或 5.1 版已開啟安全,Web 服務點對點實務如在等待中逾時,且會產生一則錯誤訊息,指出「無法重新啟動模組。*」。您可以放心忽略這個錯誤。

附註:6.0.0.1 版已修正這個問題。

1.14 路由器專案和 EJB 專案必須在相同的 EAR 中

對於 IBM SOAP 和 IBM WebSphere 執行時期,您必須在由上而下或由下而上的 EJB Web 服務實務中,將 EJB 專案及其路由器專案放在相同的 EAR 中。

1.15 利用管理主控台能夠檢視 LooseApps,但不能修改

利用管理主控台能夠檢視部署在 WebSphere Application Server 第 6 版中的應用程式,但無法修改。 如果 Rational Developer 產品應用程式需要完整的主控台功能,您可以從 UTE 伺服器編輯器中取消選取「從工作區中執行資源」。 這基本上是將 UTE 當作遠端伺服器來處理,且會產生和發佈一個 .ear 檔。

2.0 已知的問題

2.1 *使用 IBM SOAP Skeleton Web 服務的完整實務失敗

如果您利用 IBM SOAP 執行時期從 WSDL 檔中建立 Skeleton Web 服務,且選擇在相同精靈內產生 Proxy,可能無法產生或無法正確產生 Proxy。暫行解決方法是先產生 Skeleton Web 服務,再利用產生的 WSDL 來個別產生用戶端。

附註:6.0.0.1 版已修正這個問題。

2.2 *Skeleton 和用戶端實務無法使用受 HTTP 基本鑑別保護的 WSDL

在現行版本中,Web 服務精靈無法利用 HTTP 基本鑑別所保護的 WSDL 檔來建立 Skeleton Web 服務或 Web 服務用戶端。 暫行解決方法是使用瀏覽器,以及將 WSDL 下載至實體檔案系統中,且利用這個 WSDL 檔複本來執行 Web 服務精靈。

附註:6.0.0.1 版已修正這個問題。

2.3 *在執行端點啟用程式之後,JMS 路由器專案中出現錯誤訊息

在執行 Web 服務端點啟用程式來建立 JMS 端點之後,從 JMS 路由器專案中的 ejb-jar.xml 報告下列錯誤, 「CHKJ2802E: 無法反映 com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB 類別或它的某個超類型。 請檢查類別路徑。」 您可以放心忽略這個錯誤訊息。

附註:6.0.0.1 版已修正這個問題。

2.4 *指導教學:從 Java Bean 建立 Web 服務不會建立正確的套件名稱

當完成「從 Java Bean 建立和部署 Web 服務」指導教學時,系統會要求您從稱為 Resources 的資料夾中,匯入 StockQuoteService Java Bean。Resources 資料夾中的資料夾結構不正確,結果所建立的套件會不符合 Java Bean 中的套件名稱。

如果要加以更正,當匯入必要的資源時,請選取 StockQuote 資料夾,再取消選取其中的資料夾。 匯入 StockQuote 資料夾之後,請選取 StockQuote 套件,按一下滑鼠右鍵來選取「重構 > 重新命名」,再將套件重新命名為 stockquote。

附註:6.0.0.1 版已修正這個問題。

2.5 刪除使用者定義的分類架構不會從私密 UDDI 登錄中刪除 tModel

當利用「私密 UDDI 登錄」精靈來刪除表格中的使用者定義分類架構時,會從登錄中刪除種類資料,但 tModel 本身會保留下來。 當搜尋使用者定義的種類時,Web 服務瀏覽器仍會顯示刪除的種類。

2.6 *範例展示區中的 Web 服務範例可能會匯入,但出現錯誤

如果您試圖從不含 WebSphere 第 6 版伺服器的範例展示區(WebSphere 股票報價、溫度轉換或通訊錄)匯入 WebSphere Web 服務範例,您會見到警告:

未偵測到任何 WebSphere 第 6 版伺服器執行時期。 您必須在安裝好 WebSphere 第 6 版伺服器之後,手動設定匯入的專案之伺服器目標執行時期。

如果您刪除匯入的範例,請手動新增 WebSphere 第 6 版伺服器,再繼續重新匯入,範例仍會匯入,但會因鎖定目標伺服器失敗而發生編譯錯誤。 如果要暫時解決這個問題,請刪除範例,關閉工作台,重新啟動再重新匯入範例。

附註:6.0.0.1 版已修正這個問題。

2.7 *當 WSDL 沒有任何 SOAP 連結時,用戶端實務會擲出異常狀況

如果您利用 WebSphere Application Server 6.0 版建立 Web 服務用戶端,且您使用不含任何 SOAP 連結的 WSDL 文件,它會擲出異常狀況。

附註:6.0.0.1 版已修正這個問題。

2.8 *在 Web 服務精靈後續的呼叫中,Skeleton 實務不會重新整理產生的 Java 檔

如果您需要利用修改過的 WSDL 檔,在相同專案中重建現有的 Web 服務,並不會重新整理產生的 Java 檔。 這可能會造成編譯錯誤,Java 檔可能保持不變。 暫行解決方法是先備份並刪除所有產生的 Java 檔,再執行 Skeleton Web 服務精靈。

附註:6.0.0.1 版已修正這個問題。

2.9 *在 UDDIPublish/UDDIUnpublish -profileName <profile name> 中擲出 NullPointerException

如果沒有在 -profileName 前面指定 -inquiryUrl <url>,便會在 UDDIPublish/UDDIUnpublish -profileName <設定檔名稱> 中擲出 NullPointerException。 您可能不需要使用 -profileName,因為預設值已符合所安裝的設定檔。 如果您需要使用 -profileName,您應該在 -profileName <設定檔名稱> 前面指定 -inquiryUrl <url>。

附註:6.0.0.1 版已修正這個問題。

返回主要 Readme 檔