maven web.xml 元素类型“web-app”必须由匹配的结束标签“</web-app>”终止
Posted
技术标签:
【中文标题】maven web.xml 元素类型“web-app”必须由匹配的结束标签“</web-app>”终止【英文标题】:maven web.xml The element type "web-app" must be terminated by the matching end-tag "</web- app>" 【发布时间】:2020-09-05 00:16:19 【问题描述】:Eclipse Java EE IDE Apache Tomcat v9.0 我通过 New->Maven Project 创建了项目,并选择 Maven 原型为 maven-archetype-webapp。 web.xml 内容如下。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>WebProject</display-name>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<display-name>LoginServlet</display-name>
<servlet-class>com.wise.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
eclipse中的项目结构如下
有两个错误: 元素类型“web-app”必须由匹配的结束标记“”终止。 cvc-complex-type.2.4.a:发现以元素“显示名称”开头的无效内容。 '"http:// 之一 java.sun.com/xml/ns/javaee":servlet-class, "http://java.sun.com/xml/ns/javaee":jsp-file, "http://java.sun.com/ xml/ns/javaee":init-param, "http://java.sun.com/xml/ns/javaee":load-on-startup, "http://java.sun.com/xml/ns/ javaee":已启用, "http://java.sun.com/xml/ns/javaee":async-supported, "http://java.sun.com/xml/ns/ javaee":run-as, "http://java.sun.com/xml/ns/javaee":security-role-ref, "http://java.sun.com/xml/ns/ javaee":multipart-config' 是预期的。
谁能给点意见?
【问题讨论】:
【参考方案1】:删除此标题并尝试
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
并添加标头架构参考
<?xml version="1.0" encoding="UTF-8"?>
【讨论】:
,仍然失败并显示元素类型“web-app”必须由匹配的结束标记“”终止。【参考方案2】:你的 web.xml 结构应该是这样的。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>WebProject</display-name>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<display-name>LoginServlet</display-name>
<servlet-class>com.wise.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
【讨论】:
,它仍然失败并出现2个错误。第一个是:元素类型“web-app”必须由匹配的结束标记“”终止。 另一个错误:cvc-complex-type.2.4.a:发现以元素“显示名称”开头的无效内容。 '"http://java.sun.com/xml/ns/javaee":servlet-class, "java.sun.com/xml/ns/javaee":jsp-file, "java.sun.com xml/ns/javaee":init-param, "java.sun.com/xml/ns/javaee":load-on-startup 之一, "java.sun.com/xml/ns javaee":enabled, "java.sun.com/xml/ns/javaee":async-supported, "java.sun.com/xml/ns javaee":run-as, "java.sun.com/xml/ns/javaee":security-role-ref, "java.sun.com/xml/ns javaee":multipart-config' 是预期的。 这个 web.xml 是用 Eclipse->Dynamic Web 项目生成的,它正在当前项目中工作。 您使用的是哪个服务器? 我使用 Maven Project 创建项目,并将 Maven 原型选择为 maven-archetype-webapp。使用 Apache Tomcat v9.0以上是关于maven web.xml 元素类型“web-app”必须由匹配的结束标签“</web-app>”终止的主要内容,如果未能解决你的问题,请参考以下文章