Webfragmente
Wenn Sie Webanwendungen entwickeln und mehrere Webmodule dieselben Komponenten verwenden, sollten Sie die Komponenten in eine JAR-Datei für Webfragmente einschließen. Die JAR-Datei für Webfragmente enthält die Konfigurationsmetadaten und die Klassendateien der Komponenten. Dieses Verfahren vereinfacht Kopiervorgänge zwischen Anwendungen.
Implementierungsdeskriptorfragmente für Webmodule (Webfragmente) enthalten dieselben Konfigurationsmetadaten, die auch in einer Datei "web.xml" enthalten sind, existieren aber als Datei "web-fragment.xml", die in eine JAR-Datei im Verzeichnis WEB-INF/lib gepackt ist.
Frameworkentwickler stellen JAR-Dateien bereit, die in eine Webanwendung eingeschlossen sind, die ein bestimmtes Framework verwendet. Wenn dieses Framework Servlets, Filter oder andere Webmodulkonfigurationen verwendet, bieten Webfragmente die Möglichkeit, die JAR-Datei einfach in eine Anwendung zu ziehen, ohne Änderungen an der vorhandenen Webmodulkonfiguration vornehmen zu müssen. Vor der Einführung dieser Technik mussten Webanwendungsentwickler ihre Konfiguration mit zusätzlichen vom Framework benötigten Metadaten erweitern. Eine anderer Anwendungsfall ist die bereits erwähnte Notwendigkeit, dieselben Komponenten in mehreren Webmodulen zu verwenden. Außerdem können Webfragmente die Verwendung von Testobjekten oder Stubs vereinfachen.


- JAR-Dateien werden nur nach Annotationen oder Webfragmentmetadaten durchsucht, wenn sie sich im Verzeichnis WEB-INF/lib befinden. Gemeinsam genutzte Bibliotheken werden nicht nach Annotationen oder Webfragmentmetadaten durchsucht.
- Annotationen, die in Klassen im Verzeichnis WEB-INF/classes enthalten sind, werden zuerst aufgenommen und haben Vorrang vor allen im Verzeichnis WEB-INF/lib enthaltenen Metadaten.
- Alle JAR-Dateien im Verzeichnis All WEB-INF/lib werden als Webfragmente behandelt, unabhängig davon, ob sie eine Datei "web-fragment.xml" enthalten oder nicht. Wenn keine Datei "web-fragment.xml" in einer JAR-Datei enthalten ist, wird eine implizite leere Datei "web-fragment.xml" angenommen.
- Annotationen für die JAR-Dateien im Verzeichnis WEB-INF/lib werden in die entsprechende Datei "web-fragment.xml" aufgenommen, bevor nach Konflikten zwischen Webfragmenten gesucht wird. Deshalb verhindern Konflikte zwischen Annotationen in verschiedenen Fragmenten die Implementierung der Anwendung.
- Wenn Sie eine Reihenfolge für die Webfragmente definieren, werden die Annotation und die Webfragmentmetadaten für die Webfragmente nacheinander in der festgelegten Reihenfolge aufgenommen.
- Da alle JAR-Dateien im Verzeichnis WEB-INF/lib als Fragmente behandelt werden, gilt das Element <others> in einem Element <absolute-ordering> für alle JAR-Dateien, die in der Reihenfolge nicht angegeben sind.