In Java EE 6 gelten strengere Regeln für die JAR-Sichtbarkeit als in Java EE 5. Dies führt dazu, dass einige ältere Anwendungen möglicherweise nicht ausgeführt werden können.
Die Java EE 6-Spezifikation definiert strenge Regeln dafür, welche JAR-Dateien aus einer Enterprise Archive-(EAR-)Datei sichtbar sind. Lesen Sie insbesondere Abschnitt EE.8.3.3. Vor allem Anwendungsclient-Module sollten keinen Zugriff auf EJB-JAR-Dateien haben, es sei denn, das Manifest Class-Path der JAR-Datei des Anwendungsclients verweist explizit auf die EJB-JAR-Dateien.
Dies ist eine Änderung gegenüber Enterprise Server v2; in dieser Version hatten Anwendungsclients automatisch Zugriff auf alle EJB-JAR-Dateien in der EAR-Datei und alle JAR-Dateien auf der obersten Ebene der EAR-Datei. Um den strengeren Regeln der Spezifikationssprache zu entsprechen, kann Enterprise Server v3 Anwendungsclients des Zugriff auf diese JAR-Dateien nicht automatisch gewähren.
Diesem neuen, strengeren Verhalten, das von Java EE 6 gefordert wird, können Sie wie folgt begegnen:
Wenn die Anwendung für eine Enterprise Server v2-Domäne bereitgestellt wird, behält Upgrade Tool das Enterprise Server v2-Verhalten für diese Anwendung in dieser Domäne. Weitere Informationen zum Upgrade-Verfahren finden Sie im Sun GlassFish Enterprise Server v3 Upgrade Guide .
Ändern Sie das Manifest Class-Path des Clients so, dass es explizit auf die JAR-Dateien verweist, von denen es abhängt. Class-Path darf keine JAR-Dateien im Bibliotheksverzeichnis der EAR-Datei auflisten. Gemäß Spezifikation stehen alle JAR-Dateien in diesem Verzeichnis allen Modulen in der EAR-Datei zur Verfügung. Dieses Verzeichnis ist standardmäßig /lib; durch Verwendung von library-directory im Deskriptor von application.xml kann alternativ ein anderes Verzeichnis festgelegt werden.
Stellen Sie die EAR-Datei mit der optionalen Einstellung --property compatibility=v2 bereit. Dadurch bleibt das Enterprise Server v2-Verhalten für diese Anwendung erhalten, wenn sie für Enterprise Server v3 bereitgestellt wird.
Dieses geänderte Verhalten ist auch Thema in Kapitel 1, Application Server Compatibility Issues in Sun GlassFish Enterprise Server v3 Upgrade Guide.