cvc-complex-type.2.4.a:从元素'init-param'开始发现无效内容

mic*_*nko 42 xsd web.xml servlets init-parameters

这是我的web.xmlxsd

<?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">
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

在标记的行上xml验证器说

cvc-complex-type.2.4.a:从元素'init-param'开始发现无效内容.其中一个'{" http://java.sun.com/xml/ns/javaee ":启用," http://java.sun.com/xml/ns/javaee ":async-supported," http:/ /java.sun.com/xml/ns/javaee ":运行为," http://java.sun.com/xml/ns/javaee ":安全角色引用," HTTP://java.sun .com/xml/ns/javaee ":multipart-config}'是预期的.

有什么问题,如何更正此错误?

Bal*_*a R 126

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>
Run Code Online (Sandbox Code Playgroud)

  • 你可能会认为有一种很好的表达方式!而不是从元素“init-param”开始发现无效内容。也许是 RTFM 的一个例子……然后我就忙着读书,直到牛回家…… (3认同)
  • 这太疯狂了。它还需要出现在 `&lt;async-supported&gt;` 之前 (2认同)

ska*_*man 15

它很迂腐,但<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>
Run Code Online (Sandbox Code Playgroud)