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*)". 

===================================================


So for the 2.3 version of the DTD, you have to put the tags in the correct order. You have:


<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)


==============================