24

我正在使用 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 模块版本?

4

1 回答 1

40

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

于 2012-08-27T17:10:18.197 回答