Richtlinie: J2EE-Module assemblieren
Diese Richtlinie beschreibt das Assemblieren von J2EE-Modulen.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

Einführung

Beim Assemblieren eines J2EE-Moduls entsteht das folgende Implementierungselement:

  • J2EE-Archiv (WAR-, EJB-JAR- und JAR-Dateien) und seine
  • Implementierungsdeskriptoren (XML-Dateien), die den Inhalt des Archivs beschreiben und angeben, wie die darin enthaltenen Komponenten im Implementierungscontainer funktionieren sollen.

Nähere Informationen zu J2EE-Modulen finden Sie unter Richtlinie: J2EE-Modul.

Das Archiv definieren

In diesem Schritt ermittelt der Provider der Anwendungskomponente die Komponenten, die in das Modul gepackt werden sollen.

Es ist möglich, mehrere Archive für unterschiedliche Zwecke zu erstellen. Beispielsweise können separate Archive für den Test, das Debugging und für Implementierungskonfigurationen für unterschiedliche "Produktionszwecke" erstellt werden. Die Testarchive würden die Testklassen und die Klassen mit Debug-Markierungen enthalten, während die Produktionsarchive keine Testklassen enthalten würden und ohne Debug-Markierungen erstellt werden würden. Der vorgesehene Kontext des Archivs, das assembliert wird, hat Auswirkungen auf den für die Assemblierung definierten Arbeitsbereich.

Implementierungsdeskriptoren definieren

Der wichtigste Schritt beim Assemblieren eines J2EE-Moduls ist die Definition des Implementierungsdeskriptors. Ein großer Teil dieser Informationen sollte im Design jeder Komponente enthalten sein, so dass die Definition des Implementierungsdeskriptors größtenteils darauf abzielt, die Konsistenz mit dem Design sicherzustellen. Wenn Sie Round-trip-Engineering verwenden, existiert möglicherweise auch die Toolunterstützung zum Generieren des Implementierungsdeskriptors.

Jedes Archiv enthält einen J2EE-Standardimplementierungsdeskriptor sowie null oder mehr herstellerspezifische Deskriptoren. Die Standarddeskriptoren, ejb-jar.xml für EJB-JARs und web.xml für WARs, enthalten Abschnitte, die für Testimplementierungen und andere Implementierungen, die nicht für Produktionszwecke dienen, definiert werden müssen, sowie Abschnitte, die vom abschließenden Anwendungsassembler zur Implementierung in der Produktionsumgebung vorbereitet werden.

Jeder Deskriptor enthält Informationen, die für den Provider der Anwendungskomponente wichtig sind, sowie die Anwendungsassembler. Beispielsweise enthält ejb-jar.xml drei Hauptabschnitte (als Beispiel für diese Diskussion): <enterprise-beans>...</enterprise-beans>, <relationships>...</relationships> und <assembly-descriptor>...</assembly-descriptor>. Der Provider der Anwendungskomponente definiert die Eigenschaften der EJBs, wie z. B. CMP-Felder, im Abschnitt <enterprise-beans>...</enterprise-beans>. Außerdem definiert der Provider der Anwendungskomponente die optionalen Abhängigkeiten zwischen EJBs im Abschnitt <relationships>...</relationships>. Im Abschnitt <assembly-descriptor>...</assembly-descriptor> werden Transaktionen, Sicherheitsrollen, Methodenberechtigungen usw. definiert. Normalerweise ist dieser Abschnitt nur Sache des Anwendungsassemblers. Der Assembler kann die Inhalte der anderen beiden Abschnitte ändern, dies ist aber nicht die Regel. Die Situation ist ähnlich für WAR-Archive. Nähere Informationen zur Anwendungsassemblierung finden Sie unter Richtlinie: J2EE-Anwendungen assemblieren.

Wenn Sie während des Designs Zuordnungen zwischen Datenbanktabellen im Datenmodell und CMP-Entity-Beans definiert haben, sollten sich diese Zuordnungen in den Zuordnungsanweisungen der herstellerspezifischen Deskriptoren widerspiegeln (Zuordnungsanweisungen sind nicht Teil des EJB-Standarddeskriptors). Nähere Informationen über die Zuordnung von CMP-Entity-Beans zu Datenbanktabellen finden Sie unter Richtinie: Design von Entity-Beans.

Sollen mehrere Komponenten in demselben Archiv gepackt werden (siehe Schritt: Das Archiv definieren), dann muss der Provider der Anwendungskomponenten deren Implementierungsdeskriptordaten integrieren. Wenn z. B. EJBs in einer EJB-JAR zusammengefügt werden, dann muss der Provider der Anwendungskomponente die Informationen in den Implementierungsdeskriptoren, z. B. Sicherheitsrollen und Querverweise, aufeinander abstimmen.

Das Archiv prüfen

Es ist sinnvoll, den Inhalt des Archivs vor der Implementierung zu prüfen, da unbestimmte Fehler, insbesondere auf der Seite des Anwendungsservers, zu unklaren oder nicht vorhandenen Fehlernachrichten führen können. Beispielsweise können mehrfach vorhandene JNDI-Namen von keiner der im Archiv gepackten Komponenten verwendet werden.