这2天tomcat总是出问题,不能正常启动,错误如下: org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
后来发现原因竟然和DTD 的格式要求有关,原文在:
我copy了基本要点:
===================================================
<web-app> <servlet></servlet> <servlet-mapping></servlet-mapping> <servlet></servlet> <servlet-mapping></servlet-mapping> <servlet></servlet> <servlet-mapping></servlet-mapping> <!-- ... --> <listener></listener> </web-app>
But the DTD says it must be:
<web-app> <listener></listener> <servlet></servlet> <servlet></servlet> <servlet></servlet> <!-- ... --> <servlet-mapping></servlet-mapping> <servlet-mapping></servlet-mapping> <servlet-mapping></servlet-mapping> <!-- ... --> </web-app>
======================================
The error message tells you the order they must be in:
content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*, filter*,filter-mapping*,listener*,servlet*,servlet-mapping*, session-config?,mime-mapping*,welcome-file-list?,error-page*, taglib*,resource-env-ref*,resource-ref*,security-constraint*, login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)"
Means the order is:
icon (0 or 1 times) display-name (0 or 1 times) description (0 or 1 times) distributable (0 or 1 times) context-param (0 or more times) filter (0 or more times) filter-mapping (0 or more times) listener (0 or more times) servlet (0 or more times) servlet-mapping (0 or more times) session-config (0 or 1 times) mime-mapping (0 or more times) welcome-file-list (0 or 1 times) error-page (0 or more times) taglib (0 or more times) resource-env-ref (0 or more times) resource-ref (0 or more times) security-constraint (0 or more times) login-config (0 or 1 times) security-role (0 or more times) env-entry (0 or more times) ejb-ref (0 or more times) ejb-local-ref (0 or more times)
==============================
i also want to know that
are tags supposed to be in some order in version 2.4, or i can have them in any order ?
Answer: