servlets xsd web.xml init-parameters

servlets - cvc-complex-type.2.4.a: se encontró contenido no válido comenzando por el elemento ''init-param''



xsd web.xml (2)

El orden de los elementos en web.xml importa y en todos los ejemplos que he encontrado, el <load-on-startup> viene después de <init-param> .

<servlet> <servlet-name>spring1</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

Este es mi web.xml xsd

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

Aquí está el nodo servlet

<servlet> <servlet-name>spring1</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <!-- here is a problem --> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> </servlet>

En la línea marcada, el validador xml dice

cvc-complex-type.2.4.a: Se encontró contenido no válido comenzando por el elemento ''init-param''. Uno de ''{" http://java.sun.com/xml/ns/javaee ": habilitado, " http://java.sun.com/xml/ns/javaee ": async-supported, " http://java.sun.com/xml/ns/javaee ": run-as," http://java.sun.com/xml/ns/javaee ": security-role-ref," http://java.sun.com/xml/ns/javaee ": multipart-config} ''es esperado.

¿Qué está mal y cómo puedo corregir este error?


Es pedante, pero <init-param> tiene que venir antes de <load-on-startup> , entonces:

<servlet> <servlet-name>spring1</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param><!--here is a problem--> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>