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.
|