Sun GlassFish Enterprise Server v2.1.1 版本說明

Web 服務

本節說明已知的 Web 容器問題以及相關的解決方案。

Ant 作業 wsimport 無法用於 Java EE SDK b33d (使用 JDK 1.6),出現 NoClassDefFoundError (6527842)

說明

使用 Java EE SDK b33d 內附的 JDK 1.6 執行 JAX-WS 測試時,可能會遇到問題。測試會立即中斷,並顯示下列訊息:


[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \
com/sun/tools/ws/WsImport

即使 webservices-tools.jar 不包含 com/sun/tools/ws/WsImport.classcom/sun/tools/ws/ant/WsImport.classcom/sun/tools/ws/ant/WsImport2.class,也會出現此錯誤。而且,使用 1.5.0-10 JDK 時,相同的測試工作區便會正常工作,不出現任何問題。

解決方案

在執行 JAX-WS 測試之前,將 webservices-api.jar 複製到 $JAVA_HOME/jre/lib/endorsed

publish-to-registry 指令在 IFR EE 建置中無法使用 (6602046)

說明

JAXR 使用 SAAJ 將 SOAP 訊息傳送至登錄。在非 IFR 情況下,SAAJ impl 類別位於 lib/webservices-rt.jar 下。在 IFR 情況下,SAAJ 類別仍位於 lib/webservices-rt.jar 下。此外,saaj-impl.jar 位於 /usr/share/lib 目錄中。此 jar 檔案由 Enterprise Server 挑選,其優先順序高於 webservices-rt.jar 中的類別。此 jar 檔案不具有將 SOAP 訊息傳送至 Web 服務登錄所需的必要安全性許可權。應該將封裝修改為將權限授予 /usr/share/lib 目錄下的 jar,或者修改為不依賴 /usr/share/lib jar。

解決方案

server.policy 檔案增加以下內容︰


grant codeBase "file:/usr/share/lib/saaj-impl.jar" {
   permission java.security.AllPermission;
};

在 JDK6 u4 b3 上 wscompile 失敗,並出現「package javax.xml.rpc does not exist」的訊息 (6638567)

說明

對於 JDK 6 Update 4,wscompile ant 作業會失敗。針對每個 JAX-RPC API 類別,會顯示下列錯誤訊息:


package package-name does not exist

解決方案

在執行 wscompile ant 作業之前,請確認在類別路徑中已指定 javaee.jar,而 j2ee.jar