servlets - Obteniendo error: el contenido del tipo de elemento "aplicación web" debe coincidir,
web.xml (3)
El mensaje de error le dice en detalle en qué orden se supone que se colocarán los elementos y cuántos de ellos están permitidos. En otras palabras, el orden o la cantidad de elementos dentro de la <web-app>
de su web.xml
es incorrecto. Por ejemplo, según el mensaje de error, <servlet>
debe ir antes que <servlet-mapping>
. El ?
sufijo significa que puede haber cero o uno de ellos. El *
sufijo significa que puede haber cero o muchos de ellos.
Por lo tanto, el siguiente ejemplo no es válido :
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
Mientras que el siguiente ejemplo es válido :
<servlet>...</servlet>
<servlet>...</servlet>
<servlet>...</servlet>
<servlet-mapping>...</servlet-mapping>
<servlet-mapping>...</servlet-mapping>
<servlet-mapping>...</servlet-mapping>
Cuando construyo mi proyecto en Eclipse Helios Service Release 2, aparece un error en mi web.xml
. Por favor sugiere lo que tengo que hacer para esto. En mi proyecto estoy usando DTD 2.2. El error está abajo.
El contenido del tipo de elemento "aplicación web" debe coincidir con "(icono?, Nombre de visualización?, Descripción?, Distribuible?, Parámetro de contexto?, Servlet *, asignación de servlet *, configuración de sesión?, Asignación de mímica * , welcome-file-list?, error-page *, taglib *, resource-ref *, security-constraint *, login-config?, security-role *, env-entry *, ejb-ref *) ".
Si alguien está interesado, recibí la misma excepción para la página de error. Este nodo debe ir después del servlet, pero antes del mapeo del servlet.
Tengo el mismo problema cuando integro spring
a struts2
en Eclipse
. Después de algunas pruebas, descubrí que es el problema del orden de las etiquetas en el archivo web.xml
. El siguiente archivo tiene el error
<!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>
Si cambié el orden a
<!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>
El error será eliminado.
Espero que esto sea útil para las personas que enfrentan el mismo problema.