Fragmentos da Web

Ao desenvolver aplicativos da Web, se diversos módulos da Web usarem os mesmos componentes, considere a inclusão de componentes em um arquivo Java archive (JAR) de fragmento da Web. O arquivo JAR de fragmento da Web contém os metadados de configuração e os arquivos de classes de componentes. Esta prática permite copiar mais facilmente de um aplicativo para outro.

Os fragmentos do descritor de implementação de módulo da Web (fragmentos da Web) fornecem os mesmos metadados de configuração que um arquivo web.xml fornece, mas existem como um arquivo web-fragment.xml que é empacotado em um arquivo JAR no diretório WEB-INF/lib.

Os desenvolvedores de estruturas fornecem arquivos JAR que são incluídos em um aplicativo da Web que usa essa estrutura específica. Se essa estrutura usar servlets, filtros ou outra configuração de módulo da Web, os fragmentos da Web fornecerão a capacidade de simplesmente arrastar o arquivo JAR para um aplicativo sem a necessidade de alterações na configuração de módulo da Web existente. Anteriormente, os desenvolvedores de aplicativos da Web precisavam aumentar sua configuração com metadados adicionais exigidos pela estrutura. Outro caso de uso é a necessidade, mencionada acima, de usar os mesmos componentes nos módulos da Web. Além disso, o uso de objetos ou stubs simulados pode ser facilitado com fragmentos da Web.

A varredura de fragmentos da Web diminui o desempenho de cada arquivo JAR em que se procura por um arquivo web-fragment.xml. Quanto mais alto o número de arquivos JAR em um aplicativo da Web, maior o impacto no desempenho. Se o desempenho afetar a demanda, desative a varredura de fragmentos da Web configurando metadata-complete como true e inclua qualquer configuração necessária no arquivo web.xml.
Evitar Problemas Evitar Problemas: Desativar a varredura de fragmentos da Web também desativa a varredura de anotações. Portanto, se você precisar de um deles, ambos serão varridos.gotcha
Importante: Configure o elemento metadata-complete no arquivo web.xml como true para desativar a varredura de fragmento. Use a tag absolute-ordering no arquivo web.xml para forçar uma ordem de varredura de fragmentos da Web ou varra um subconjunto dos fragmentos da Web. Use a tag relative-ordering em arquivos web-fragment.xml para especificar a ordem relativa a outro fragmento.
A inclusão de fragmentos em um aplicativo da Web pode expor acidentalmente os terminais a riscos de segurança se não estiver ciente de servlets, filtros ou restrições de segurança incluídos em um fragmento da Web. Verifique se todos os servlets, filtros e restrições de segurança configurados estão funcionando conforme o esperado.
Evitar Problemas Evitar Problemas: Se houver um conflito nos fragmentos da Web, os aplicativos não serão implementados. Se houver conflito ao instalar o aplicativo, visualize o arquivo SystemOut.log para entender quais itens estão em conflito.gotcha
Nota: Esse tópico faz referência a um ou mais arquivos de log do servidor de aplicativos. Como uma recomendação alternativa, é possível configurar o servidor para usar a infraestrutura de log e rastreio do High Performance Extensible Logging (HPEL) em vez de usar os arquivos SystemOut.log , SystemErr.log, trace.log e activity.log em sistemas distribuídos e IBM® i. Também é possível usar HPEL em conjunção com os recursos de criação de log z/OS nativos. Se você estiver usando HPEL, será possível acessar todas as informações de log e rastreio usando a ferramenta de linha de comandos LogViewer a partir do diretório bin do perfil do servidor. Consulte as informações sobre a utilização do HPEL para resolução de problemas dos aplicativos para obter mais informações sobre o uso do HPEL.
Regras gerais para mesclagem de fragmentos da Web e anotações na especificação de Servlet 3.0:
  • Os arquivos JAR são varridos por anotações ou metadados do fragmento da Web apenas se estiverem no diretório WEB-INF/lib. As bibliotecas compartilhadas não são varridas por anotações ou metadados do fragmento da Web.
  • As anotações que estão nas classes no diretório WEB-INF/classes são mescladas primeiro e têm precedência sobre quaisquer metadados no diretório WEB-INF/lib.
  • Todos os arquivos JAR no diretório WEB-INF/lib são considerados fragmentos da Web, independentemente de conterem um arquivo web-fragment.xml. Se um arquivo web-fragment.xml não existir em um arquivo JAR, será considerado que ele possui um arquivo web-fragment.xml implícito vazio.
  • As anotações para cada arquivo JAR no diretório WEB-INF/lib são mescladas no arquivo web-fragment.xml correspondente antes de verificar a existência de conflitos entre os fragmentos da web. Portanto, os conflitos entre anotações em diferentes fragmentos evitam que o aplicativo seja implementado.
  • Se você definir uma ordem de fragmentos da web, a anotação e os metadados do fragmento da web para um fragmento da web serão mesclados antes de um outro fragmento que está acima na ordem.
  • Como todos os arquivos JAR no diretório WEB-INF/lib são considerados fragmentos, o elemento <others> em um elemento <absolute-ordering> se aplica a todos os arquivos JAR que não são mencionados em outro lugar na ordem.
 

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_webfragments
Nome do arquivo: cweb_webfragments.html