Code Bye

web.xml配置问题

以下是web.xml文件!

<?xml version="1.0" encoding="UTF-8"?>
<!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 id="WebApp_ID" version="2.3">
	<display-name>WEB_APP</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>
</web-app>

在启动Tomcat v4.1时出现如下错误,
1、Document root element “web-app”, must match DOCTYPE root “null”.
2、Document is invalid: no grammar found.
3、Attribute “version” must be declared for element type “web-app”.
折腾了半天,实在找不到错在哪里了,请各位大虾帮忙看下,谢谢了!


10分
web.xml上面这一段抬头语法定义内容,直接拷贝一份就是了
或者 直接让eclipse生成,尽量不要手动去写,容易出错
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

5分
引用 1 楼 magi1201 的回复:

web.xml上面这一段抬头语法定义内容,直接拷贝一份就是了
或者 直接让eclipse生成,尽量不要手动去写,容易出错

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

+1


5分
你的格式不对,web.xml没有<!DOCTYPE..>~就像楼上说的,这个东西,随便找个项目把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" 
		 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 version="2.5">
...
...
</web-app>
引用 1 楼 magi1201 的回复:

web.xml上面这一段抬头语法定义内容,直接拷贝一份就是了
或者 直接让eclipse生成,尽量不要手动去写,容易出错

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

我直接去线上的客户那边拷贝了一份过来还是不行。。。

看看tomcat的版本号,去官网下载一个同版本的tomcat,将其中的工程里面自带的web.xml的抬头定义内容拿出来
如果还不行,那就看看启动时候出什么问题,估计就是具体的问题了
web.xml的<web-app> 里面引的xsd文档,是定义web.xml里面的标签的,帮助解析的
引用 3 楼 wlwlwlwl015 的回复:

你的格式不对,web.xml没有<!DOCTYPE..>~就像楼上说的,这个东西,随便找个项目把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" 
		 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 version="2.5">
...
...
</web-app>

这两种方式应该都可以吧?好像只是验证的方式不同而已,一种是dtd验证,一种是xsd,具体的记不清了,但我印象中是这样的。。


10分
引用 6 楼 meng_taiqian 的回复:
Quote: 引用 3 楼 wlwlwlwl015 的回复:

你的格式不对,web.xml没有<!DOCTYPE..>~就像楼上说的,这个东西,随便找个项目把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" 
		 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 version="2.5">
...
...
</web-app>

这两种方式应该都可以吧?好像只是验证的方式不同而已,一种是dtd验证,一种是xsd,具体的记不清了,但我印象中是这样的。。

楼主说的是tomcat v4.1,估计支持不到2.5这么高的版本,楼主用的是2.3,如1楼所言,用eclipse新建一个相应版本的web工程,把自动生成的web.xml拷过来。

謝謝各位的熱心回答,只是試了各種方法還是不行,最後無賴只能把同事的工作空間拷過來用了。。。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明web.xml配置问题