Cave-House

点燃我的灵感,让创意在自由的空间翱翔!

从server.xml到web.xml的个人发现!


从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的文件夹里吗?
阅读更多
个人分类: 技术
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭