Fragmentos Web

Al desarrollar aplicaciones web, si varios módulos web utilizan los mismos componentes, considere la posibilidad de incluir los componentes en un archivo JAR (Java archive) de fragmento Web. El archivo JAR de fragmento web contiene los metadatos de configuración y archivos de clase de componente. Esta práctica facilita la realización de copias de una aplicación a otra.

Los fragmentos del descriptor de despliegue del módulo web (fragmentos web) proporcionan los mismos metadatos de configuración que proporciona un archivo web.xml, pero existen como un archivo web-fragment.xml empaquetado dentro de un archivo JAR en el directorio WEB-INF/lib.

Los desarrolladores de infraestructura proporcionan los archivos JAR que están incluidos en una aplicación web que utiliza dicha infraestructura. Si la infraestructura utiliza servlets, filtros u otra configuración de módulo web, los fragmentos web ofrecen la posibilidad de arrastrar simplemente el archivo JAR a una aplicación sin necesidad de cambios en la configuración de módulo web existente. Antes era necesario que los desarrolladores de aplicaciones web aumentaran la configuración con los metadatos adicionales necesarios para la infraestructura. Otro caso de uso es la necesidad de utilizar los mismos componentes en los módulos web que se ha citado anteriormente. Asimismo, el uso de objetos o apéndices falsos puede simplificarse gracias a los fragmentos web.

La exploración de fragmentos web reduce el rendimiento para cada archivo JAR en el que se busca un archivo web-fragment.xml. Cuanto mayor es el número de archivos JAR en una aplicación web, mayor es el impacto en el rendimiento. Si el rendimiento es una prioridad, inhabilite la exploración de fragmentos web estableciendo metadata-complete en true e incluya la configuración necesaria en el archivo web.xml.
Avoid trouble Avoid trouble: La inhabilitación de la exploración de fragmentos web también inhabilita la exploración de anotaciones. Por lo tanto, si necesita alguna de estas exploraciones, se exploran ambas.gotcha
Importante: Establezca el elemento metadata-complete en el archivo web.xml en true para inhabilitar la exploración de fragmentos. Utilice el código absolute-ordering en el archivo web.xml para forzar un orden para explorar fragmentos web o explore un subconjunto de los fragmentos web. Utilice el código relative-ordering en los archivos web-fragment.xml para especificar un orden relativo a otro fragmento.
Es posible que si se incluyen fragmentos en una aplicación Web se expongan accidentalmente los puntos finales a riesgos de seguridad si no está al corriente de las restricciones de seguridad, filtros o servlets que están incluidos en un fragmento web. Verifique que todas las restricciones de seguridad, filtros y servlets funcionan como se espera.
Avoid trouble Avoid trouble: Si hay un conflicto en los fragmentos web, las aplicaciones no se desplegarán. Si hay conflicto al instalar la aplicación, vea el archivo SystemOut.log para conocer qué elementos están en conflicto.gotcha
Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.
Reglas generales para la fusión de fragmentos web y anotaciones en la especificación Servlet 3.0:
  • Los archivos JAR sólo se exploran para buscar anotaciones o metadatos de fragmentos web si están en el directorio WEB-INF/lib. No se exploran anotaciones o metadatos de fragmentos web en bibliotecas compartidas.
  • Las anotaciones que están en las clases en el directorio WEB-INF/classes se fusionan primero y tienen prioridad sobre los metadatos del directorio WEB-INF/lib.
  • Todos los archivos JAR del directorio WEB-INF/lib se consideran fragmentos web, independientemente de si contienen un archivo web-fragment.xml. Si un archivo web-fragment.xml no existe en un archivo JAR, se considera que tiene un archivo web-fragment.xml implícito vacío.
  • Las anotaciones de cada archivo JAR en el directorio WEB-INF/lib se fusionan en el archivo web-fragment.xml correspondiente antes de comprobar si existen conflictos entre los fragmentos web. Por lo tanto, los conflictos entre las anotaciones de distintos fragmentos impiden el despliegue de la aplicación.
  • Si define el orden de fragmentos web, la anotación y los metadatos de fragmento web de un fragmento web se fusionan antes que los de otro fragmento posterior.
  • Como todos los archivos JAR del directorio WEB-INF/lib se consideran fragmentos, el elemento <others> en un elemento <absolute-ordering> se aplica a todos los archivos JAR que no se especifican en ningún otro lugar en el orden.
 

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_webfragments
File name: cweb_webfragments.html