Tomcat:v6
Spring Tools Suite:v2.7.2
Spring Framework:spring-webmvc-3.0.5
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources" />
<context:component-scan base-package="com.app.mvc" />
</beans>
<servlet-mapping>
<servlet-name>duckapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
web.xml将所有URL映射到servlet,但mvc:resources映射静态文件除外。
cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素'mvc:annotation-driven'的声明。 app-servlet.xml / app / www / WEB-INF
cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素'mvc:resources'的声明。 app-servlet.xml / app / www / WEB-INF
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd不包含元素资源
如果被http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd替换仍然无法正常工作,可能无法根据spring 3.05的jar文件工作
mvc:资源出现在spring v3.0.4中,但没有新的xsd
如何解决编译错误以使mvc:资源正常工作?
我一直在挖掘大约2个小时,但还没有可靠的答案......
答案 0 :(得分:46)
在spring上下文中,xml mvc namespace 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中的实际架构位置。
答案 1 :(得分:6)
使用Spring命名空间时,我通常不使用版本信息 大部分时间工作得很好。 您可能想尝试命名空间URL
http://www.springframework.org/schema/mvc/spring-mvc.xsd
而不是
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
答案 2 :(得分:2)
我得到了同样的错误。原因是缺少Maven依赖性spring -webmvc。我包含了以下依赖项,它开始工作。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
答案 3 :(得分:1)
我认为您的schemaLocation映射不正确。命名空间指定为:
xmlns:mvc="http://www.springframework.org/schema/mvc"
这是正确的,我相信,但在schemaLocation中你有
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
因此,如果将schemaLocation映射的第一行更改为mvc名称空间,则应该可以正常工作。
答案 4 :(得分:0)
我已经为udemy参加了春季课程。我按照我的导师告诉我要做的每一步。 因此,如果您使用的是spring mvc和hibernate,则可能会遇到此错误 无法阅读架构文档&#39; http://www.springframework.org/schema/tx/spring-tx.xsd&#39;等等:
<span>
在我的弹簧配置文件中,我有这两个网址
<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.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/tx/ 并添加了最新版本的spring-mvc和spring-tx,即spring-mvc-4.2.xsd和spring-tx-4.2.xsd
所以,在我看来,明确指定版本是一个很好的做法。 它对我有用,希望这也适合你。 谢谢。