Подтвердить что ты не робот

Веб-приложение Java. Что определяет мою версию API сервлета? Получается ли он указан в web.xml?

Я использую Eclipse EE Juno, и мое текущее веб-приложение использует Dynamic web modules 2.4. Я пытаюсь повысить версию до 3.0, но по какой-то причине я не могу. когда я пытаюсь изменить версию в гранях проекта, я получаю Cannot change version of project facet Dynamic Web Module to 3.0. Возможно ли, что в моем файле web.xml есть несколько двухъярусных строк, которые определяют это? Как изменить версию динамических веб-модулей, если не только в настройке объекта Eclipse?

4b9b3361

Ответ 1

Сервлет 2.4 в web.xml:

<web-app version="2.4"
  xmlns="http://java.sun.com/xml/ns/j2ee"
  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 в web.xml:

<web-app version="3.0"
  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">

Это единственное различие. Остальное - ваша конфигурация IDE. Чтобы использовать Servlet 3.0, вы должны иметь 3.0 JAR на CLASSPATH, чтобы были доступны новые аннотации и другие классы. Но не включайте JAR сервлета в вашу WAR, реализация должна поступать из контейнера сервлета.