Java web应用程序-是什么决定了我的Servlet API版本?是否在web.xml中指定



我使用的是Eclipse EE Juno,而我当前的web应用程序使用的是Dynamic web modules 2.4。我试图将版本提升到3.0,但由于某种原因我无法。当我试图在项目方面更改版本时,我得到了Cannot change version of project facet Dynamic Web Module to 3.0。有没有可能是我的web.xml文件中有一些双层线决定了这一点?如果不是单独从Eclipse项目方面设置,我如何更改动态web模块版本?

web.xml:中的Servlet 2.4

<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">

web.xml:中的Servlet 3.0

<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,您必须在CLASSPATH上有3.0 JAR,以便可以使用新的注释和其他类。但是不要在WAR中包含servlet JAR,实现应该来自servlet容器。

最新更新