从server.xml到web.xml的个人发现! 阅读次数3668 出处 CN-JAVA原创:shearlock [中文JAVA技术网 2004-02-29] 我是一个初学者,本没什么东西可以卖弄的,但一次遇到一个配置问题,苦思良久才得以解决,心情舒畅的同时,特与跟我一样同为初学的同志们分享,不到之处,敬请原谅!!问题:某天我用Eclipse写了两个Servelet程序,准备摆上Tomcat上调试,一切配备好了之后启动Tomcat,结果Tomcat启动报错web.xml文件出错 <web-app> did not match.web.xml配置文件的原码是这样的:<?xml version="1.0" encoding="gb2312" ?> <!DOCTYPE web-app (View Source for full doctype...)> - <web-app>- <servlet><servlet-name>servletLogin</servlet-name> <servlet-class>org.catalina.Login</servlet-class> </servlet>- <servlet-mapping><servlet-name>servletLogin</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>- <servlet><servlet-name>servletCheckID</servlet-name> <servlet-class>org.catalina.CheckID</servlet-class> </servlet>- <servlet-mapping><servlet-name>servletCheckID</servlet-name> <url-pattern>/CheckID</url-pattern> </servlet-mapping></web-app>解决:后来我在研究这段代码时,分别屏蔽掉其中一个Servlet,他又可以正常启动。这证明语法上不存在问题。结果在研究server.xml文件时发现问题所在:先定义<servlet>,再定义<servlet-mapping>。我不知道为什么,我把代码改为<?xml version="1.0" encoding="gb2312" ?> <!DOCTYPE web-app (View Source for full doctype...)> - <web-app>- <servlet><servlet-name>servletLogin</servlet-name> <servlet-class>org.catalina.Login</servlet-class> </servlet>- <servlet><servlet-name>servletCheckID</servlet-name> <servlet-class>org.catalina.CheckID</servlet-class> </servlet>- <servlet-mapping><servlet-name>servletLogin</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>- <servlet-mapping><servlet-name>servletCheckID</servlet-name> <url-pattern>/CheckID</url-pattern> </servlet-mapping></web-app>后,一切正常。希望跟我一样迷茫的初学者有所收获,也希望对此有所了解的高手们能指点指点。感谢!! 整理发布 发言人:chesterwoo 日期:2004-03-01 DTD文档就是这样定义的。 发言人:过客 日期:2004-03-03 谢谢! 希望你能多多发表你的心得体会。 发言人:过客 日期:2004-03-04 应该是DTD文档定义的时候就确定了先后顺序 发言人:东方欲晓 日期:2004-03-06 好文,好人实实在在的实用技术 发言人:过客 日期:2004-03-07 看一下DTD就明白为什么会这样了。BTW:建议用xmlbuddy这个eclipse的xml编辑插件来写web.xml 发言人:lnaszyy 日期:2004-03-08 实在有用 发言人:过客 日期:2004-03-08 这里应注意。 应放在一起。 应放在一起。不能够放 再放。 ,再放 。这样程序很定解释不了web.xml文件。同理再多的servlet也一样。 发言人: 过客 日期:2004-03-09 用jbuilder创建servlet,能生成格式规范的web.xml文件,如果是新手的话,还是要多使用jbuilder 发言人:过客 日期:2004-03-18 上面说的都不对,你要知道这些配置文件首先是XML 文件,那么,就要用XML 解析器来解析文档,如果是使用的DOM解析器,我相信不会有什么问题,因为它加载整个XML文件到内存中,可以随机访问,但如果使用的是SAX解析器,那就不行了,因为它是基于流的,在SAX解析器读取XML文档 发言人:过客 日期:2004-03-18 你要知道这些配置文件首先是XML文件,要用XML 解析器来解析文档,如果是使用的DOM解析器,我相信不会有什么问题,因为它加载整个XML文件到内存中,可以随机访问,如果使用的是SAX解析器,那就不行了,它是基于流的,在SAX解析器读取XML文档时,只能顺序处理文档树中的每个节?br> 发言人:过客 日期:2004-03-18 你要知道这些配置文件首先是XML文件,要用XML 解析器来解析文档,如果是使用的DOM解析器,它加载整个XML文件到内存中,可以随机访问,但如果使用的是SAX解析器,因为它是基于流的,在SAX解析器读取XML文档时,只能顺序读取文档树中的每个节点,而不能随机访问。 发言人:过客 日期:2004-03-18 对不起,255限制,我截了几个字 发言人:过客 日期:2004-03-18 还是楼上这位哥们专业:) 发言人:eegemini 日期:2004-03-23 好人啊 发言人:shearlock 日期:2004-03-23 感谢各位的支持!小弟终于搞明白了!最近小弟在研究Jboss中又遇问题!头疼! 发言人:过客 日期:2004-03-25 哎,多看看那个dtd文件啊,那里定义了标记出现的顺序 发言人:过客 日期:2004-03-26 哈哈,你怎么没问问边上的人啊, 发言人:过客 日期:2004-04-02 我也遇到过这样的问题,开始总是有点小错误的! 发言人:过客 日期:2004-04-09 什么叫DTD啊,是不是类似 XML Schema,如果有,这个文件存在Tomcat的文件夹里吗?