O Java EE 6 impõe regras mais estritas de visibilidade JAR do que o Java EE 5 fazia. Como resultado, alguns aplicativos mais antigos podem falhar.
A especificação Java EE 6 impõe regras estritas sobre quais arquivos JAR são visíveis de um arquivo corporativo (EAR). Consulte especialmente a seção EE.8.3.3. Especificamente, os módulos de aplicativo cliente não deveriam ter acesso à qualquer arquivo EJB JAR, a não ser que o manifesto do arquivo JAR do aplicativo cliente Class-Path se refira explicitamente ao arquivo EJB JAR.
Esta é uma alteração do Enterprise Server v2, no qual o aplicativo cliente tinha o acesso automático à todos os arquivos EJB JAR no arquivo EAR e a todos os arquivos JAR no nível superior do arquivo EAR. Para estar em conformidade com a linguagem com especificação mais estrita, o Enterprise Server v3 não pode fornecer automaticamente aplicativos clientes com acesso ao arquivos JAR.
Este novo comportamento mais estrito imposto pelo Java EE 6 pode ser endereçado como segue:
Se o aplicativo está implementado para um domínio do Enterprise Server v2, a Ferramenta de Atualização irá preservar o comportamento do Enterprise Server v2 para aquele aplicativo naquele domínio. Para obter mais informações sobre como atualizar, consulte o Sun GlassFish Enterprise Server v3 Upgrade Guide.
Altere o manifesto Class-Path do cliente, para que ele se refira explicitamente aos arquivos JAR does quais ele depende. O Class-Path não pode listar os arquivos JAR no diretório da biblioteca dos arquivos EAR. Como requerido pela especificação, todos os arquivos JAR naquele diretório estão disponíveis para todos os módulos no arquivo EAR. Este diretório é o /lib por padrão, ou pode ser definido para algum outro diretório usando library-directory no descritor application.xml.
Implemente o arquivo EAR usando a configuração opcional --property compatibility=v2. Isso preserva o comportamento do Enterprise Server v2 para aquele aplicativo quando ele é implementado no Enterprise Server v3.
Esta alteração de comportamento também é discutida no Capítulo 1, Application Server Compatibility Issues, no Sun GlassFish Enterprise Server v3 Upgrade Guide.