Java Spring v3找不到元素';mvc:资源'; 当前运行

Java Spring v3找不到元素';mvc:资源'; 当前运行,java,xml,spring,servlets,schema,Java,Xml,Spring,Servlets,Schema,Tomcat:v6 Spring工具套件:v2.7.2 Spring框架:Spring-webmvc-3.0.5 Servlet XML web.xml部分代码 duckapp / Servlet用途 xml将所有URL映射到servlet,但mvc:resources映射静态文件除外 漏洞 cvc复杂类型.2.4.c:匹配的通配符是严格的,但找不到元素“mvc:注释驱动”的声明。app-servlet.xml/app/www/WEB-INF cvc复杂类型.2.4.c:匹配的通配符是

Tomcat:v6

Spring工具套件:v2.7.2

Spring框架:Spring-webmvc-3.0.5

Servlet XML

web.xml部分代码

duckapp
/
Servlet用途 xml将所有URL映射到servlet,但mvc:resources映射静态文件除外

漏洞
  • cvc复杂类型.2.4.c:匹配的通配符是严格的,但找不到元素“mvc:注释驱动”的声明。app-servlet.xml/app/www/WEB-INF

  • cvc复杂类型.2.4.c:匹配的通配符是严格的,但找不到元素“mvc:resources”的声明。app-servlet.xml/app/www/WEB-INF

已知问题
  • 不包含元素资源

  • 根据spring 3.05的jar文件,如果替换为仍然不起作用,并且可能不起作用

  • mvc:resources出现在SpringV3.0.4中,但没有新的xsd

问题: 如何修复编译错误以使mvc:resources正常工作


我已经为此挖掘了大约2个小时,还没有确切的答案…

当使用Spring名称空间URL时,我通常不使用版本信息和其他信息 大多数情况下效果都很好。 您可能希望尝试名称空间url

http://www.springframework.org/schema/mvc/spring-mvc.xsd
而不是

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

在spring上下文中,xml mvc命名空间url应该与schemaLocation中的url匹配。大概是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
         http://www.springframework.org/schema/mvc
         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">


这是一个标准的XML名称空间声明。名称空间url是一种唯一的id,然后映射到xsi:schemaLocation中的实际架构位置。

我认为您的schemaLocation映射不正确。命名空间指定为:

xmlns:mvc="http://www.springframework.org/schema/mvc"
我相信这是正确的,但在你的计划中

http://www.springframework.org/schema/mvc/spring-mvc
                http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

因此,如果将schemaLocation映射的第一行更改为mvc名称空间,它应该可以正常工作。

我也遇到了同样的错误。原因是缺少Maven依赖项spring-webmvc。我包含了下面的依赖项,它开始工作了

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

org.springframework
SpringWebMVC
${spring.version}

我已经报名参加了我的udemy春季课程。我遵循我的导师教我做的每一步。 因此,如果您使用SpringMVC和hibernate,您可能会遇到此错误 无法读取以下内容的架构文档“”等:

<mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
在xsi:schemaLocation中,我将其替换为

    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd

    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
实际上我访问了这两个站点 及 刚刚添加了spring mvc和spring tx的最新版本,即spring-mvc-4.2.xsd和spring-tx-4.2.xsd

因此,在我看来,明确指定版本号是一种很好的做法。 这对我有用,希望这对你也有用。
谢谢。

谢谢,这正是问题所在!谢谢,也为我工作过。我希望SpringDoesn中能更好地记录这一点。我有完全相同的问题,但使用spring 3.1在上述代码段中,您唯一需要更改的是spring-mvc.xsd的版本-在这种情况下,请尝试下面的一个xmlns:beans=”“我有相同的问题,这就解决了它。我认为在xsd声明中使用版本是不可取的。如果没有给出版本,Spring将在项目依赖项中使用最高版本。我认为在xsd声明中使用版本是不可取的。如果没有给出版本,Spring将使用项目依赖项中的最高版本。
<mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd

    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd

    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-4.2.xsd