2011-03-03 17 views
36

'-param init' Esta es mi web.xml xsdCVC-complejo-type.2.4.a: se encontró contenido no válido a partir de elemento de

<?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á 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> 

Por línea marcada xml validador dice

cvc-complex-type.2.4.a: El contenido no válido se encontró 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é hay de malo y cómo puedo corregir este error?

Respuesta

112

El orden de los elementos en web.xml materias y en todos los ejemplos que he encontrado, la <load-on-startup> viene después <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> 
+2

+1 buena captura !! – craig

+1

¡Pensarías que hay una forma NIZA de decir eso! en lugar de contenido no válido se encontró comenzando con el elemento 'init-param'. Tal vez un caso de RTFM ... entonces id esté ocupado leyendo hasta que las vacas vuelvan a casa ... – Gerrie

+0

genio! salvó el día –

12

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

<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> 
+0

No estoy seguro de por qué esta no es la respuesta aceptada ya que esta es la primera respuesta escrita. – Vignesh

Cuestiones relacionadas