1

谁能帮我?我正在使用 Apache Tomacat 10 在 Eclipse 2021-06 上创建一个新的动态 Web 项目。我总是在 web.xml 中收到错误

<?xml version="1.0" encoding="UTF-8"?>
<web-app    id="WebApp_ID" version="2.5" 
            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">
    <display-name>01Test</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

有标记:

  • 版本="2.5

我收到以下错误 在此处输入图像描述

我怎么解决???我尝试通过 Eclipse 下载 Tomcat 表单网站...使用 Web 模块 4 和 5...但仍然有这个问题...

4

1 回答 1

2

Eclipseweb.xml根据提供的模式验证文件:

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd

该架构要求version属性为2.4. 如果您将其设置为正确的值2.4,则错误将消失。Servlet 2.4 也没有<display-name>标签,因此出现了第二个"error"

由于 Tomcat 5.5(支持 Servlet 2.4)早已不复存在,您应该将您的架构更改web.xml为:

  • Servlet 3.1,对应于未达到生命周期结束的最旧版本的 Tomcat(Tomcat 8.5):

    <web-app
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1">
    
  • Servlet 4.0,对应于 Java EE 名称下的最后一个版本:

    <web-app
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">
    
  • Servlet 5.0,对应Tomcat 10:

    <web-app
        xmlns="https://jakarta.ee/xml/ns/jakartaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
        version="5.0">
    

并相应地设置“动态 Web 模块”方面的版本。这样,Eclipse 将为您提供有关这些规范中引入的元素的完成建议。

备注:也许从那以后它已经更正了,但是 Eclipse 2021-03 在支持 Tomcat 10 和 Jakarta EE 9 方面仍然存在一些怪癖。例如,它不允许在 Tomcat 10 上部署 Servlet 5.0 项目,它只能与 Servlet 一起使用4.0 及以上的项目。

您还需要注意,由于从javax.*jakarta.*命名空间的迁移,您的项目将无法在旧版本的 Tomcat 上运行。

于 2021-08-19T09:50:46.763 回答