【问题标题】:cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'cvc-complex-type.2.4.a:发现以元素“init-param”开头的无效内容
【发布时间】:2011-07-07 16:44:41
【问题描述】:

这是我的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">

这里是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>

在标记的行上 xml 验证器说

cvc-complex-type.2.4.a:发现以元素“init-param”开头的无效内容。 '{"http://java.sun.com/xml/ns/javaee":enabled, "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}' 是预期的。

出了什么问题,我该如何纠正这个错误?

【问题讨论】:

    标签: servlets xsd web.xml init-parameters


    【解决方案1】:

    按此配置

      <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    
          <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
    
            <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/dispatcher-servlet-context.xml</param-value>
            </context-param>
    
            <servlet>
                <servlet-name>dispatcher-servlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value></param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
            </servlet>
    
            <servlet-mapping>
                <servlet-name>dispatcher-servlet</servlet-name>
                <url-pattern>/*</url-pattern>
            </servlet-mapping>
    
        </web-app>
    

    【讨论】:

      【解决方案2】:

      web.xml 中元素的顺序很重要,在我遇到的所有示例中,&lt;load-on-startup&gt; 位于&lt;init-param&gt; 之后。

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

      【讨论】:

      • 你会认为有一种很好的说法!而不是发现以元素“init-param”开头的无效内容。也许是 RTFM 的案例......然后我会忙着阅读直到奶牛回家......
      • 这太疯狂了。它还需要之前 &lt;async-supported&gt;
      • @CraigOtis 刚刚将 &lt;async-supported&gt; 位置更改为 after &lt;init-param&gt; 并保存。之后又变回原来的地方并保存了。现在问题没有了。 Eclipse 是有史以来最好的 IDE :) eclipse 2019-03
      【解决方案3】:

      这是迂腐的,但&lt;init-param&gt; 必须在&lt;load-on-startup&gt; 之前,所以:

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

      【讨论】:

        猜你喜欢
        • 2018-08-24
        • 2018-03-04
        • 1970-01-01
        • 1970-01-01
        • 2020-10-31
        • 2019-01-26
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多