Получение ошибки: содержимое типа элемента "веб-приложение" должно совпадать,
Когда я создаю свой проект в Eclipse Helios Service Release 2, я получаю сообщение об ошибке в web.xml
. Пожалуйста, предложите, что я должен сделать для этого. В моем проекте я использую DTD 2.2. Ошибка ниже.
Содержимое типа элемента "веб-приложение" должно соответствовать "(значок?, display- имя?, описание?, распространяемая?, контекстно-пары *, сервлет *, сервлет-отображение *, сессионная-конфигурация?, мим отображение *, добро файл-лист?, ошибка-страница *, TagLib *, ресурс-исй *, безопасность ограничение *, логин-конфигурация?, безопасности- роль *, окр-запись *, EJB-ссылок *)".
Ответы
Ответ 1
Сообщение об ошибке подробно сообщит вам, в каком порядке должны быть размещены элементы и сколько из них разрешено. Другими словами, порядок или количество элементов внутри <web-app>
вашего web.xml
неверно. Например, в соответствии с сообщением об ошибке, <servlet>
должно пройти до <servlet-mapping>
. Суффикс ?
означает, что может быть ноль или один из них. Суффикс *
означает, что может быть ноль или многие из них.
Итак, приведенный ниже пример недействителен:
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
В приведенном ниже примере valid:
<servlet>...</servlet>
<servlet>...</servlet>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet-mapping>...</servlet-mapping>
<servlet-mapping>...</servlet-mapping>
Ответ 2
Если кому-то интересно, я получил такое же исключение для страницы с ошибкой. Этот node должен идти после сервлета, но до сервлет-сопоставления.
Ответ 3
У меня такая же проблема, когда я интегрирую spring
в struts2
в Eclipse
. После некоторого тестирования я нашел проблему с порядком тегов в файле web.xml
. Следующий файл имеет ошибку
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Если я изменил порядок на
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Ошибка будет устранена.
Надеюсь, что это будет полезно для людей, которые сталкиваются с одной и той же проблемой.