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.

Die Suche nach Webfragmenten beeinträchtigt die Leistung mit jeder JAR-Datei, in der eine Datei "web-fragment.xml" gesucht wird. Je mehr JAR-Dateien eine Webanwendung enthält, desto höher ist der Einfluss auf die Leistung. Sollte der Einfluss auf die Leistung zu hoch sein, inaktivieren Sie die Suche nach Webfragmenten, indem Sie die Einstellung "metadata-complete" auf true setzen und alle erforderlichen Konfigurationsdaten in die Datei "web.xml" einschließen.
Fehler vermeiden Fehler vermeiden: Wenn Sie die Suche nach Webfragmenten inaktivieren, wird auch die Suche nach Annotationen inaktiviert. Die Suche nach Webfragmenten ist nicht ohne die Suche nach Annotationen möglich und umgekehrt.gotcha
Wichtig: Setzen Sie das Element "metadata-complete" in der Datei "web.xml" auf true, um die Suche von Fragmenten zu inaktivieren. Verwenden Sie das Tag "absolute-ordering" in der Datei "web.xml", um eine Reihenfolge für die Suche nach Webfragmenten oder die Suche einer Teilgruppe von Webfragmenten festzulegen. Mit dem Tag "relative-ordering" in den Dateien "web-fragment.xml" können Sie die Reihenfolge relativ zu einem anderen Fragment festlegen.
Der Einschluss von Fragmenten in eine Webanwendung kann zu unbeabsichtigten Sicherheitsrisiken für Endpunkte führen, wenn Sie die Servlets, Filter oder Integritätsbedingungen für die Sicherheit nicht kennen, die in einem Webfragment enthalten sind. Vergewissern Sie sich, dass alle konfigurierten Servlets, Filter und Integritätsbedingung für die Sicherheit wie erwartet funktionieren.
Fehler vermeiden Fehler vermeiden: Anwendungen werden nicht implementiert, wenn ein Konflikt in den Webfragmenten gefunden wird. Wird bei der Installation der Anwendung ein Konflikt festgestellt, sehen Sie sich die Datei "SystemOut.log" an, um festzustellen, welche Komponenten an dem Konflikt beteiligt sind.gotcha
Anmerkung: Dieser Artikel referenziert eine oder mehrere Protokolldateien des Anwendungsservers. Alternativ dazu wird empfohlen, den Server so zu konfigurieren, dass er die HPEL-Protokoll- und -Traceinfrastruktur (High Performance Extensible Logging) verwendet und nicht die Dateien SystemOut.log , SystemErr.log, trace.log und activity.log auf verteilten oder IBM® i-Systemen. Sie können HPEL auch in Verbindung mit Ihren nativen z/OS-Protokolleinrichtungen verwenden. Wenn Sie HPEL verwenden, können Sie mit dem Befehlszeilentool LogViewer im Verzeichnis "bin" des Serverprofils auf alle Ihre Protokoll- und Tracedaten zugreifen. Weitere Informationen zur Verwendung von HPEL finden Sie in der Dokumentation zum Einsatz von HPEL für die Fehlerbehebung in Anwendungen.
Allgemeine Regeln für die Zusammenführung von Webfragmenten und Annotationen in der Spezifikation Servlet 3.0:
  • 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.
 

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_webfragments
Dateiname:cweb_webfragments.html