我是一个初学者,本没什么东西可以卖弄的,但一次碰到一个配置问题,
苦思良久才得以解决,心情愉快的同时,特与跟我一样同为初学的同志们
分享,不到之处,敬请原谅!!
问题:
某天我用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>
后,一切正常。
希望跟我一样迷茫的初学者有所收获,也希望对此有所了解的高
手们能指点指点。感谢!!