Cvc-complex-type.2.4.a: Недействительный контент был найден, начиная с элемента 'init-param'
Это мой 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">
Вот сервлет node
<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>
В отмеченной строке xml validator указано
cvc-complex-type.2.4.a: Недействительный контент был найден, начиная с элемента init-param. Один из "{" http://java.sun.com/xml/ns/javaee ": включен," http://java.sun.com/xml/ns/javaee ": поддерживается async, 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} ' ожидается.
Что не так и как я могу исправить эту ошибку?
Ответы
Ответ 1
Порядок элементов в web.xml
имеет значение, и во всех примерах, с которыми я столкнулся, <load-on-startup>
появляется после <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
Он педантичен, но <init-param>
должен быть до <load-on-startup>
, поэтому:
<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>