Fragments Web
Lors du développement d'applications Web, incluez les composants dans un fichier JAR (Java archive) de fragment Web si plusieurs modules utilisent les mêmes composants. Le fichier JAR de fragment Web contient les métadonnées et les fichiers classe de composant. Cette pratique facilite la copie d'une application vers une autre.
Les fragments du descripteur de déploiement de module Web (fragments Web) fournissent les mêmes métadonnées de configuration que le fichier web.xml, mais ils existent comme fichier web-fragment.xml incorporé dans un fichier JAR dans le répertoire WEB-INF/lib.
Les développeurs d'infrastructure fournissent des fichiers JAR inclus dans une application Web qui utilise cette infrastructure. Si cette infrastructure utilise des servlets, des filtres ou une autre configuration de module Web, les fragments permettent de simplement faire glisser le fichier JAR vers une application sans avoir à modifier la configuration du module Web. Auparavant, les développeurs d'applications Web devaient étendre leur configuration avec des métadonnées supplémentaires nécessaires à l'infrastructure. Un autre cas est l'utilisation des mêmes composants dans les modules Web, indiquée précédemment. En outre, l'utilisation d'objets de travail ou de talons peut être simplifiée avec des fragments Web.


- Les annotations et les métadonnées de fragments Web sont recherchées dans les fichiers JAR seulement si ces fichiers se trouvent dans le répertoire WEB-INF/lib. Elles ne sont pas recherchées dans les bibliothèques partagées.
- Les annotations qui se trouvent dans les classes du répertoire WEB-INF/classes sont d'abord fusionnées, puis elles deviennent prioritaires par rapport aux métadonnées contenues dans le répertoire WEB-INF/lib.
- Tous les fichiers JAR du répertoire WEB-INF/lib sont considérés comme des fragments Web, qu'ils contiennent ou non un fichier web-fragment.xml. S'il n'existe aucun fichier web-fragment.xml dans un fichier JAR, on considère que ce fichier contient un fichier web-fragment.xml vide implicite.
- Les annotations de chaque fichier JAR du répertoire WEB-INF/lib sont fusionnées dans le fichier web-fragment.xml correspondant avant la recherche de fragments Web conflictuels. Par conséquent, les conflits d'annotations de différents fragments empêchent le déploiement de l'application.
- Si vous définissez l'ordre des fragments Web, les annotations et les métadonnées de fragments Web concernant un fragment Web sont fusionnées avant un autre fragment qui occupe une place plus loin dans le classement.
- Etant donné que tous les fichiers JAR du répertoire WEB-INF/lib sont considérés comme des fragments, l'élément <others> d'un élément <absolute-ordering> s'applique à tous les fichiers JAR qui ne sont pas mentionnés ailleurs dans le classement.