Подтвердить что ты не робот

Получение ошибки: содержимое типа элемента "веб-приложение" должно совпадать,

Когда я создаю свой проект в Eclipse Helios Service Release 2, я получаю сообщение об ошибке в web.xml. Пожалуйста, предложите, что я должен сделать для этого. В моем проекте я использую DTD 2.2. Ошибка ниже.

Содержимое типа элемента "веб-приложение" должно соответствовать "(значок?, display-  имя?, описание?, распространяемая?, контекстно-пары *, сервлет *, сервлет-отображение *, сессионная-конфигурация?, мим  отображение *, добро файл-лист?, ошибка-страница *, TagLib *, ресурс-исй *, безопасность ограничение *, логин-конфигурация?, безопасности-  роль *, окр-запись *, EJB-ссылок *)".

4b9b3361

Ответ 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>

Ошибка будет устранена.

Надеюсь, что это будет полезно для людей, которые сталкиваются с одной и той же проблемой.