当我在Eclipse Helios Service Release 2中构建项目时,我的web.xml
出现错误。请建议我为此做些什么。在我的项目中,我使用的是DTD 2.2。错误如下。
元素类型“web-app”的内容必须匹配“(图标?,显示 - 名字?,说明?,分配?,的context-param *,* servlet的,servlet的映射*,会话配置?,mime- *映射,欢迎文件列表?,错误页*,*的taglib,资源引用*,安全约束*,登录-配置?性,保密性 角色*,ENV-条目*,EJB-REF *)”。
答案 0 :(得分:76)
错误消息详细告诉您元素的放置顺序以及允许的元素数量。换句话说,<web-app>
的{{1}}内元素的排序或数量不正确。例如,根据错误消息,web.xml
需要在 <servlet>
之前。 <servlet-mapping>
后缀表示可能有零或一个。 ?
后缀表示可能有零或多个。
因此,以下示例为无效:
*
以下示例为有效:
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
答案 1 :(得分:4)
如果有兴趣我收到错误页面的相同例外。这个节点需要在servlet之后,但在servlet-mapping之前。
答案 2 :(得分:4)
我在spring
中将struts2
集成到Eclipse
时遇到了同样的问题。经过一些测试,我发现这是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>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
如果我将订单改为
<!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>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
错误将被消除。
希望这对遇到同样问题的人有所帮助。