JPA-Anwendungen für eine Java-EE-Umgebung assemblieren
Sie haben Ihre Anwendung entwickelt und für die Verwendung mit JPA (Java™ Persistence API) konfiguriert. Jetzt müssen Sie die JPA-Anwendungen für Ihre Umgebung packen.
Informationen zu diesem Vorgang
Vorgehensweise
Packen Sie die Anwendung. Für eine Anwendung, die JPA in einer Java-EE-Umgebung verwendet,
stehen mehrere Paketoptionen zur Verfügung. Wählen Sie die Paketoption aus, die am besten zur
JPA-Verwendung und Konfiguration in den Modulen Ihrer Anwendung passt.
Nachfolgend sind einige der am häufigsten verwendeten Paketoptionen aufgeführt.
Eine verbindliche Liste mit Paketoptionen finden Sie in der Spezifikation
Java Persistence API (JPA).
Anmerkung: Wenn Sie IBM® Optim PureQuery
Runtime verwenden, fügen Sie die Datei Name_der_Persistenzeinheit.pdqxml
der JAR-Datei der JPA-Anwendung hinzu.
Die Datei befinden sich in demselben Verzeichnis META-INF wie die Datei
persistence.xml.
Diese Persistenzdateien wurden während der Entwicklungstask erstellt. Weitere Informationen hierzu finden Sie im Artikel "JPA-Anwendungen für eine
Java-EE-Umgebung entwickeln".
- Für ein eigenständiges EJB-Modul (Enterprise JavaBeans) oder ein eigenständiges Anwendungsclientmodul
packen Sie die EJB- und Anwendungsclientmodule in eine JAR-Standarddatei (Java-Archiv).
Vergewissern Sie sich, dass beim Packen der Anwendung folgende Bedingungen erfüllt werden:
- Die JAR-Datei muss die EJB-Klassendateien oder Java-Klassendateien für den Anwendungsclient enthalten.
- Das Verzeichnis META-INF des Archivs muss die Datei persistence.xml enthalten.
- Wenn Ihre Anwendung Zuordnungsdateien, die Datei orm.xml oder eine angepasste Zuordnungsdatei enthält, muss die JAR-Datei diese Dateien ebenfalls enthalten. Ist die Position der Datei orm.xml nicht in der Persistenzeinheit angegeben, ist das Verzeichnis META-INF der JAR-Datei die Standardposition.
- Die Klassendateien des Criteria Metamodel, die bei der Anwendungsentwicklung vom Annotationsprozessor generiert werden, müssen an derselben Position in die JAR-Datei aufgenommen werden wie die Entitätsklassendateien.
- Für ein eigenständiges Webmodul packen Sie die Anwendung in ein eine Standard-WAR-Datei (Webanwendungsarchiv).
Vergewissern Sie sich, dass beim Packen der Anwendung folgende Bedingungen erfüllt werden:
- Die Klassendateien des Criteria Metamodel, die bei der Anwendungsentwicklung vom Annotationsprozessor generiert werden, müssen an derselben Position in die WAR-Datei aufgenommen werden wie die Entitätsklassendateien.
- Die WAR-Datei muss die Klassendateien der Webanwendung enthalten. Die Klassendateien der Webanwendung müssen im Verzeichnis WEB-INF/classes enthalten sein oder in einer JAR-Datei, die sich im Verzeichnis WEB-INF/lib der WAR-Datei befindet.
- Die Datei persistence.xml muss im Verzeichnis WEB-INF/classes/META-INF enthalten sein oder im Verzeichnis META-INF einer JAR-Datei, die sich im Verzeichnis WEB-INF/lib der WAR-Datei befindet.
- Wenn Ihre Anwendung Zuordnungsdateien, die Datei orm.xml
oder eine angepasste Zuordnungsdatei enthält, muss die WAR-Datei diese Dateien ebenfalls enthalten.
Zuordnungsdateien können im Verzeichnis
WEB-INF/classes enthalten sein oder in einer JAR-Datei, die sich im Verzeichnis
WEB-INF/lib der WAR-Datei befindet.
Geben Sie die Position der Zuordnungsdateien mit dem Element
<mapping-file> der Datei persistence.xml an.
Beispiel:
<mapping-file>META-INF/JPAorm.xml</mapping-file>
- Für Unternehmensanwendungen, die ein oder mehrere Module enthalten, packen Sie die Anwendung in
ein Standardunternehmensarchiv (EAR). Eine Unternehmensanwendung
kann ein oder mehrere
EJB-Module, Webmodule oder Anwendungsclientmodule enthalten.
Vergewissern Sie sich, dass beim Packen der Anwendung folgende Bedingungen erfüllt werden:
- Wenn mehrere Module dieselbe Persistenzeinheit verwenden, können Sie ein Persistenzarchiv erstellen und dieses in Ihre EAR-Datei aufnehmen.
- Schließen Sie Ihre Entitätsklassen, die zugehörigen Criteria-Metamodel-Klassen und alle erforderlichen Unterstützungsklassen, die Datei persistence.xml sowie zusätzliche Zuordnungsdateien in die Persistenzarchivdatei ein. Befolgen Sie die Paketierungsregeln für EJB- und Anwendungsclientmodule für die Speicherposition der Datei persistence.xml und der Zuordnungsdateien.
- Jedes Modul, das das Persistenzarchiv verwendet, muss über einen Klassenpfadeintrag in der dazugehörigen
Datei META-INF/MANIFEST.MF verfügen.
Nachfolgend ist ein Beispiel einer Manifestdatei aufgeführt:
Manifest-Version: 1.0 Class-Path: MyJPAEntities.jar
- Wenn Ihre Module getrennte Persistenzeinheiten verwenden und Entitätsklassen gemeinsam nutzen, können Sie die Entitätsklassen in ein Persistenzarchiv packen und für jedes Modul eine eigene Datei des Typs persistence.xml und eigene Zuordnungsdateien angeben. Wenn die Module die Entitätsklassen oder die Persistenzkonfiguration nicht gemeinsam nutzen, packen Sie jedes Modul als eigenständiges EJB-Modul, als eigenständiges Anwendungsclientmodul oder als eigenständiges Webanwendungsarchiv, und packen Sie diese anschließend in die EAR-Datei.