O Servlet 3.1 apresenta uma mudança na forma como o elemento
<absolute-ordering> é processado quando
o arquivo web.xml contém o atributo metadata-complete="true".
No
Servlet 3.0, quando o atributo metadata-complete está configurado como
"true", todos os archives de fragmento da web são usados. No Servlet 3.1, o
elemento <absolute-ordering> é considerado estar
completo, o que faz com que os fragmentos da web que não estão listados no elemento
<absolute-ordering> sejam excluídos do
processamento.
O recurso do Servlet 3.1 pode mudar o comportamento do aplicativo
existente, excluindo fragmentos da web que foram anteriormente incluídos.
Essa regra sinalizará o elemento
<name>B</name> no arquivo
web-fragment.xml se o arquivo
web.xml contiver o atributo
metadata-complete="true" e o elemento <absolute-ordering>
não contiver uma entrada para o nome do fragmento da web.
O exemplo a seguir demonstra a mudança de comportamento quando você usa uma combinação de um arquivo web.xml e um arquivo web-fragment.xml:
web.xml:
<absolute-ordering> <name>A</name> <others/> </absolute-ordering> |
web-fragment.xml:
<web-fragment> <name>B</name> </web-fragment> |
No Servlet 3.0, o fragmento da web B é incluído no processamento. No Servlet 3.1, ele não é incluído. Para incluir o fragmento da web B no processamento, inclua um elemento <name>B</name> na posição apropriada dentro do elemento <absolute-ordering> no arquivo web.xml.
Para mais informações sobre mudanças de comportamento do Servlet 3.1, veja o recurso a seguir: Mudanças de comportamento do Servlet 3.1.