Error Message
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 *)".
The reason is related to the DTD format requirements. The original Article is excerpted as follows:
========================================================== ============
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)
====================================
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:
The 2.4 spec can be in any order.