web.xm配置有关问题,报错及解决方案

web.xm配置问题,报错及解决方案
在配置web.xml文件,在 <display-name>DWR Servlet</display-name>   一行报
cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'. One of
'{"http://java.sun.com/xml/ns/j2ee":servlet-class, "http://java.sun.com/xml/ns/j2ee":jsp-file}' is expected.
错误
web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<display-name>cms</display-name>

	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>
			org.apache.struts.action.ActionServlet
		</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>


	<filter-mapping>
		<filter-name>SetCharacterEncoding</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>SetCharacterEncoding</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>SessionTimeoutCheck</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>SessionTimeoutCheck</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	  
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<display-name>DWR Servlet</display-name>
		<description>Direct Web Remoter Servlet</description>
		
		<servlet-class>
			org.directwebremoting.servlet.DwrServlet
		</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>pollAndCometEnabled</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>
				allowGetForSafariButMakeForgeryEasier
			</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>crossDomainSessionSecurity</param-name>
			<param-value>false</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>


	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>generateRandomNumberServlet</servlet-name>
		<url-pattern>/generateRandomNumberServlet</url-pattern>
	</servlet-mapping>

	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>

	<welcome-file-list>
		<welcome-file>/firstpage.jsp</welcome-file>
	</welcome-file-list>
	

	
</web-app>



下面列出解决办法
1)去掉:
<display-name>DWR Servlet</display-name>
<description>Direct Web Remoter Servlet</description>
2)把:
<taglib>
   <taglib-uri>displaytag</taglib-uri>
   <taglib-location>/WEB-INF/displaytag.tld</taglib-location>
</taglib>
放在:
<jsp-config></jsp-config>标签之中

分析:
出现错误的原因:通常是由于标签位置,标签DTD的校验规则所影响的,
所以上述问题还有如下解决办法

3).删除“http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”即不采用该校验规则
4).把头文件中的“version="2.4"”改为“version="2.5"”
“http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”改为“http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd”
即采用jsp2.5的校验规则