Что делает объявление web-app, совместимое с Servlet 3.0 в web.xml?

Я развертываю веб-приложение, которое объявлено в web.xml и развернуто как .war файл.

Я развертываю на Jetty 9.1.x(но я думаю, что этот вопрос не специфичен для контейнера).

Мой файл web.xml довольно старый и объявляет себя как приложение Servlet 2.4:

<web-app version="2.4" id="my_app"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="
        http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

Моя конфигурация фактически объявляет некоторые функции Servlet 3.0, например страницу с ошибкой по умолчанию. Эти функции не проверяются в соответствии с схемой, но функции, похоже, работают правильно.

Поскольку я использую 3.0 функции, я хотел бы изменить объявление как правильное:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">

Но я боюсь сделать это, потому что я не понимаю, какая разница для Jetty.

Будет ли изменение объявления повлиять на поведение Jetty при работе? Привлекает ли Jetty приложение 2.4 как-то иначе, чем приложение 3.0?

Ответ 1

Вы можете просто заменить объявление схемы с 2.4 на 3.0.

Научный метод

Сначала я отправился, чтобы доказать это, выполнив diff между 2.4 и 2,5, а другой - 2,5 и 3.0.

Я убедил себя, что различия между 2.4 и 2,5 являются только аддитивными, а пространство имен смещено от j2ee до javaee.

Тем не менее схема xsd для 3.0 меньше 1/3 других двух версий. Не уверен, как действовать в этом случае (любые идеи приветствуются!)


Вы можете скачать все схемы здесь и сделать сравнение самостоятельно:


Не так научный метод

Вот какие новые статьи описывают каждую новую версию стандарта:

Если вы читаете, изменения в дескрипторе web.xml, упомянутые в статьях, являются минутами.

Что бы я сделал, просто перечислить все элементы в исходном web.xml и подтвердить, что они существуют в этом документе, описывая схему 3.0.

Надеюсь, это поможет!