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 所制定的更為嚴格的新運作方式可以透過下列方式實現:
如果應用程式已部署至 Enterprise Server v2 網域,「升級工具」將會保留該應用程式在該網域的 Enterprise Server v2 運作方式。如需有關升級的更多資訊,請參閱「Sun GlassFish Enterprise Server v3 Upgrade Guide」。
變更用戶端的清單 Class-Path,使其明確參照它所依據的 JAR 檔案。Class-Path 不得列出 EAR 檔案的程式庫目錄中的 JAR 檔案。依照規格的要求,EAR 檔案中的所有模組都可使用該目錄中的所有 JAR 檔案。根據預設,此目錄為 /lib,或者可以使用 application.xml 描述元中的 library-directory 將其設定為其他目錄。
使用選擇性的 --property compatibility=v2 設定部署 EAR 檔案。如此便可在將應用程式部署至 Enterprise Server v3 時,保留該應用程式的 Enterprise Server v2 運作方式。
對運作方式的這項變更也會在「Sun GlassFish Enterprise Server v3 Upgrade Guide」中的第 1 章「Application Server Compatibility Issues」中討論。