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