Java EE 6은 Java EE 5보다 더 엄격한 JAR 가시성 규칙을 적용합니다. 이로 인해 일부 기존 응용 프로그램이 실패할 수 있습니다.
Java EE 6 사양에서는 EAR(엔터프라이즈 아카이브) 파일에서 볼 수 있는 JAR 파일에 대해 엄격한 규칙을 적용합니다. 특히 섹션 EE.8.3.3을 참조하십시오. 무엇보다도 응용 프로그램 클라이언트 모듈은 응용 프로그램 클라이언트 JAR 파일의 매니페스트 Class-Path가 EJB JAR 파일을 명시적으로 참조하지 않는 경우 어떤 EJB JAR 파일에도 액세스할 수 없습니다.
해당 사항은 응용 프로그램 클라이언트가 EAR 파일의 모든 EJB JAR 파일 및 EAR 파일의 최상위 레벨의 모든 JAR 파일에 자동으로 액세스할 수 있었던 Enterprise Server v2에서 변경된 사항입니다. 보다 엄격해진 사양 언어를 준수하기 위해 Enterprise Server v3에서는 이러한 JAR 파일에 대한 액세스를 응용 프로그램 클라이언트에 자동으로 제공할 수 없습니다.
Java EE 6에서 지정하는 보다 엄격한 새로운 작동을 다음과 같이 적용할 수 있습니다.
응용 프로그램이 Enterprise Server v2 도메인에 배포되는 경우 Upgrade Tool은 해당 도메인의 해당 응용 프로그램에 대해 Enterprise Server v2 작동을 유지합니다. 업그레이드에 대한 자세한 내용은 Sun GlassFish Enterprise Server v3 Upgrade Guide를 참조하십시오.
클라이언트의 매니페스트 Class-Path를 변경하여 종속된 JAR 파일을 명시적으로 참조하도록 합니다. Class-Path는 EAR 파일의 라이브러리 디렉토리에 있는 JAR 파일을 나열하지 않아야 합니다. 사양에서 요구한 대로 이 디렉토리의 모든 파일은 EAR 파일의 모든 모듈에 대해 사용 가능합니다. 이 디렉토리는 기본적으로 /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에서도 설명합니다.