Tomcat版本: 4.1.27
JDK版本: 1.4.2_01我在 web.xml 里面这样配置:
   <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>访问HelloServlet, http://localhost/helloservlet/HelloServlet
访问test.jsp, http://localhost/helloservlet
都是可以的, 但是,在启动 Tomcat 的时候, 会报错:2005-2-18 23:04:24 org.apache.commons.digester.Digester error
严重: Parse Error at line 27 column 11: The content of element type "web-app" must match "(icon?,display-name?,descripti
on?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mappi
ng*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-r
ole*,env-entry*,ejb-ref*,ejb-local-ref*)".
org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distr
ibutable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco
me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-
entry*,ejb-ref*,ejb-local-ref*)".
        at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
        at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1851)
        at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1495)
        at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1149)
        at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:282)
        at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:639)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3568)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:307)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:559)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:401)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

解决方案 »

  1.   

    你的web.xml是手工改的吗,请认真检查是否有xml标签不匹配的情况。
      

  2.   

    估计是web.xml配置出错,如楼上说的出现xml标签不匹配
      

  3.   

    你的WEB.XML中的<servlet>和<Servlet-mapping>要放在<welcome-file-list>前,description之后,就可以了。采用最后一种写法的<servlet>和<servlet-mapping>
      

  4.   

    http://www.coreservlets.com/Apache-Tomcat-Tutorial/#Test2你只要对这我上面给你的网址一点一点的配置,肯定没有问题!
      

  5.   

    楼主看一下web.xml相应的dtd文档,上面对web.xml文件的结构讲的很详细,楼主的错误就是web.xml书写问题web-app" must match "(icon?,display-name?,descripti
    on?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mappi
    ng*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-r
    ole*,env-entry*,ejb-ref*,ejb-local-ref*)".
    org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distr
    ibutable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco
    me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-
    entry*,ejb-ref*,ejb-local-ref*)".要严格按照上面的顺序书写!
      

  6.   

    lhj(努力加油):
      非常感谢, 那样修改后就没有问题了.
      我是照着文档的实例配置的, 现在再仔细看一下文档!