必须声明属性并且元素类型的内容必须匹配

问题描述 投票:0回答:1

我三天来一直试图弄清楚如何使用 Maven 的 servlet 项目启动我的 weblogic 服务器,但我发现它给了我 web.xml 错误。我有一个同事在他的 IDE 中没有这个问题,但对我来说却有这个问题,而且我找不到解决方案。

这是我的 web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

  <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
           id="WebApp_ID"
           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">
  <display-name>consultCupon202006</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>
  <servlet>
    <description></description>
    <display-name>Promotion</display-name>
    <servlet-name>Promotion</servlet-name>
    <servlet-class>com.test.consultcupon202006.servlet.Promotion</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Promotion</servlet-name>
    <url-pattern>/Promotion</url-pattern>
  </servlet-mapping>
</web-app>

它向我显示的错误主要是由于属性和网络应用程序造成的,但即使更改版本或顺序,我仍然遇到相同的错误:

在这一行找到多个注释:

  • 必须为元素类型“web-app”声明属性“xmlns:xsi”。
  • 必须为元素类型“web-app”声明属性“xsi:schemaLocation”。
  • 序言中不允许出现内容。
  • 必须为元素类型“web-app”声明属性“xmlns”。
  • 元素类型“web-app”的内容必须匹配“(icon?,display- name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-

映射*、会话配置?、mime 映射*、欢迎文件列表?、错误页面*、taglib*、资源环境引用*、资源-

ref*、安全约束*、登录配置?、安全角色*、env-entry*、ejb-ref*、ejb-local-ref*)"。

  • 必须为元素类型“web-app”声明属性“version”。

我已经编辑了 web.xml 并进行了更改,但它仍然给了我另一个错误:

<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">
  <display-name>consultCupon202006</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>
  <servlet>
    <description></description>
    <display-name>Promotion</display-name>
    <servlet-name>Promotion</servlet-name>
    <servlet-class>com.test.consultcupon202006.servlet.Promotion</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Promotion</servlet-name>
    <url-pattern>/Promotion</url-pattern>
  </servlet-mapping>
</web-app>

文档类型包含或指向的标记声明 声明必须格式正确。

我还将依赖项的版本更改为:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
  <scope>provided</scope>
</dependency>

任何建议或帮助都会帮助我阐明这一点。

java xml eclipse servlets web.xml
1个回答
0
投票

The content of element type "web-app" must match "(icon?,display- name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servle...
与这些子项的 order 相关,因为它们周围有括号,并且括号周围没有任何乘数。您的欢迎文件列表应该位于所有 servlet 声明和映射之后。

如果您要拥有

description
元素(这不是必需的),那么您应该在其中包含内容。

© www.soinside.com 2019 - 2024. All rights reserved.