Servlet 3.1 по-другому обрабатывает элемент
<absolute-ordering>, если файл
web.xml содержит атрибут metadata-complete="true".
В Servlet 3.0 при наличии значения "true" в атрибуте metadata-complete используются все архивы веб-фрагментов. В Servlet 3.1 предполагается, что элемент
<absolute-ordering> содержит
исчерпывающую информацию, поэтому те веб-фрагменты, которые не указаны в
элементе <absolute-ordering>, исключаются из обработки.
Исключение тех веб-фрагментов, которые ранее были включены, при использовании
компонента Servlet 3.1 может привести к изменению алгоритма работы приложения.
Это правило отмечает элемент
<name>B</name> в файле
web-fragment.xml, если файл
web.xml содержит атрибут
metadata-complete="true", а элемент <absolute-ordering> не содержит запись с именем веб-фрагмента.
Приведенный ниже пример демонстрирует изменение алгоритма работы при использовании файла web.xml в сочетании с файлом web-fragment.xml:
web.xml:
< span class= "XmlElement"> < absolute-ordering> < /span> < span class= "XmlElement"> < name> < /span> A < span class="XmlElement"> < /name> < /span> < span class= "XmlElement"> < others/> < /span> < span class="XmlElement"> < /absolute-ordering> < /span>
web-fragment.xml:
< span class= "XmlElement"> < web-fragment> < /span> < span class= "XmlElement"> < name> < /span> B < span class="XmlElement"> < /name> < /span> < span class= "XmlElement"> < /web-fragment> < /span>
В Servlet 3.0 веб-фрагмент B включается в обработку. В Servlet 3.1 он не включается в обработку. Для включения веб-фрагмента B в обработку необходимо добавить элемент <name>B</name> в нужную позицию в элементе <absolute-ordering> из файла web.xml.
Дополнительные сведения об изменении поведения Servlet 3.1 см. в ресурсе: Изменение поведения Servlet 3.1.