2012-08-27 690 views
23

Estoy usando Eclipse EE Juno y mi aplicación web actual está usando Dynamic web modules 2.4. Estoy tratando de subir la versión a 3.0, pero por alguna razón no puedo. cuando intento cambiar la versión en las facetas del proyecto obtengo Cannot change version of project facet Dynamic Web Module to 3.0. ¿Es posible que haya alguna línea de literas en mi archivo web.xml que determine esto? ¿Cómo cambio la versión de los módulos web dinámicos si no solo desde la configuración de faceta del proyecto Eclipse?Aplicación web Java: ¿qué determina mi versión de la API Servlet? ¿Se especifica en web.xml?

Respuesta

38

Servlet 2.4 en 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 en 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"> 

Esa es la única diferencia. El resto es tu configuración IDE. Para usar Servlet 3.0, debe tener 3.0 JAR en CLASSPATH para que haya nuevas anotaciones y otras clases disponibles. Pero no incluya servlet JAR en su WAR, la implementación debe provenir del contenedor de servlets.

+1

[Servlet 3.1] (https://jcp.org/en/jsr/detail?id=340) es actual a partir de 2013-05. Ver [Wikipedia] (https://en.wikipedia.org/wiki/Java_servlet#History) para la historia. –

Cuestiones relacionadas