我三天来一直试图弄清楚如何使用 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>
任何建议或帮助都会帮助我阐明这一点。
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
元素(这不是必需的),那么您应该在其中包含内容。