Я использую 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?
Веб-приложение Java. Что определяет мою версию API сервлета? Получается ли он указан в web.xml?
Ответ 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, реализация должна поступать из контейнера сервлета.