web-dev-qa-db-fra.com

cvc-complex-type.2.4.a: Un contenu non valide a été trouvé en commençant par l'élément 'init-param'

C'est mon 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">

Voici le nœud de 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>

Sur la ligne marquée, le validateur xml indique

cvc-complex-type.2.4.a: Un contenu non valide a été trouvé en commençant par l'élément 'init-param'. L'un des '{" http://Java.Sun.com/xml/ns/javaee ": activé, " 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} ' devrait.

Qu'est-ce qui ne va pas et comment puis-je corriger cette erreur?

41

L'ordre des éléments dans web.xml importe et dans tous les exemples que j'ai rencontrés, le <load-on-startup> vient aprè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>
125
Bala R

C'est pédant, mais <init-param> doit venir avant <load-on-startup>, donc:

<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>
15
skaffman