Sun GlassFish Enterprise Server v3 版本說明

應用程式的相關變更

Enterprise Server v3 和 Enterprise Server v2 之間存有與應用程式相關的差異。本節將描述部分差異。

force 選項

Enterprise Server v3 中,部署的 force 選項的預設值為 false。Enterprise Server v2 中的預設值為 true。在 Enterprise Server v3 中,必須在重新部署時明確將選項設定為 true。在升級過程中不會自動設定此選項。這項變更的目的是為了避免意外覆寫現有應用程式的內容。此變更會套用至管理控制台和指令行公用程式。

asadmin redeploy 指令在 Enterprise Server v3 中也是新的指令,功能與 --force=true 相同。force 選項僅適用於 deploy 指令 (指令行介面) 以及 deploy 畫面 (主控台),而不適用於 redeploy 指令和 redeploy 畫面。

應用程式和產生的目錄配置

Enterprise Server v2 包含兩個應用程式儲存庫的子目錄:applications/j2ee-appsapplications/j2ee-modules。Enterprise Server v3 中並沒有這些子目錄 (沒有 j2ee-appsj2ee-modules 層級)。獨立模組 (例如 foo.war) 的部署在 Enterprise Server v2 中位於 applications/j2ee-modules/foo,現在在 Enterprise Server v3 中則位於 applications/foo。企業應用程式和獨立模組實質上是共用相同的名稱空間,因此不需要中間目錄層。

domain.xml application 元素

web-moduleejb-module 等先前的元素在 Enterprise Server v3 中已經棄用,以新的 application 元素取代。如需更多有關 application 元素的資訊,請參閱「Sun GlassFish Enterprise Server v3 Domain File Format Reference 」中的「application」

在升級期間,會以 domain.xml 中的新 application 元素,在新的 applications/ 位置重新部署 Enterprise Server v2 應用程式。在 Enterprise Server v3 部署的任何新應用程式都會以新的目錄結構和元素部署。

更嚴格的 JAR 可視性規則

Java EE 6 制定了比 Java EE 5 更嚴格的 JAR 可視性規則。因此,有些較舊的應用程式可能會失敗。

Java EE 6 規格 制定了嚴格的規則,規定企業歸檔 (Enterprise Archive, EAR) 檔案中有哪些 JAR 檔案可見。請特別參閱 EE.8.3.3 節。具體而言,除非應用程式用戶端 JAR 檔案的清單 Class-Path 有明確參照 EJB JAR 檔案,否則應用程式用戶端模組應無法存取任何 EJB JAR 檔案。

這與 Enterprise Server v2 中不同,在 Enterprise Server v2 中,應用程式用戶端會自動擁有 EAR 檔案中的所有 EJB JAR 檔案以及 EAR 檔案頂層的所有 JAR 檔案之存取權限。為了符合更嚴格的規格語言,Enterprise Server v3 無法自動為應用程式用戶端提供這些 JAR 檔案的存取權限。

Java EE 6 所制定的更為嚴格的新運作方式可以透過下列方式實現:

對運作方式的這項變更也會在「Sun GlassFish Enterprise Server v3 Upgrade Guide」中的第 1 章「Application Server Compatibility Issues」中討論。

應用程式用戶端 deploy --retrieve get-client-stubs 指令

在 Sun GlassFish Enterprise Server v3 中,執行 deploy --retrieveget-client-stubs 指令不再與 Enterprise Server v2 中一樣僅下載一個 JAR 檔案到本機目錄中。雖然在 Enterprise Server v3 中仍然會建立 localdir/myAppClient.jar ,而且可以用作 appclient 指令的目標,但是同時也會建立另一個目錄 localdir/myAppClient,進而包含其他檔案。

如果一般是複製一個 Enterprise Server v2 下載的 JAR 檔案,以這種方式來將應用程式用戶端元件移動到其他位置,則此方法在 Enterprise Server v3 中無效。支援的方法是使用 asadmin get-client-stubs 指令實現這一目的。如需有關此指令的資訊,請參閱 get-client-stubs(1)

但是如果仍然選擇複製,則除了複製 localdir/myAppClient.jar 檔案 (如同 Enterprise Server v2 中一樣) 以外,您還必須複製 localdir/myAppClient 目錄中的所有內容。