Java EE 6 では Java EE 5 のときよりも厳格な JAR 可視性規則が課されます。この結果として、古いアプリケーションの一部に障害が発生する可能性があります。
Java EE 6 仕様 では、どの JAR ファイルをエンタープライズアーカイブ (EAR) ファイルから見えるようにするかということに関して、厳格な規則が課されています。特に、EE.8.3.3 の節を参照してください。具体的には、アプリケーションクライアント JAR ファイルのマニフェスト Class-Path に EJB JAR ファイルが明示されていない限り、アプリケーションクライアントモジュールはいかなる EJB JAR ファイルに対してもアクセス権を持つことができません。
これは Enterprise Server v2 からの変更点です。Enterprise Server v2 では、EAR ファイルに含まれるすべての EJB JAR ファイル、および EAR ファイルの最上位にあるすべての JAR ファイルへのアクセス権がアプリケーションクライアントに自動的に付与されていました。より厳格な仕様言語に従うため、ProductName; v3 ではアプリケーションクライアントに JAR ファイルへのアクセス権を自動的に付与することはできません。
Java EE 6 によって課されたこの新しい厳格な動作に対処する方法は、次のとおりです。
アプリケーションが Enterprise Server v2 ドメインに配備されている場合、アップグレードツールはそのドメイン内のアプリケーションに対して Enterprise Server v2 の動作を保持します。アップグレードの詳細については、『Sun GlassFish Enterprise Server v3 Upgrade Guide』を参照してください。
依存する JAR ファイルが明示されるように、クライアントのマニフェスト Class-Path を変更します。Class-Path に EAR ファイルのライブラリディレクトリ内の JAR ファイルを記述しないでください。仕様によって定められているように、このディレクトリ内のすべての 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」も参照してください。