Подтвердить что ты не робот

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} ' ожидается.

Что не так и как я могу исправить эту ошибку?

4b9b3361

Ответ 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>