4

我从 Spring 3 (3.1.2) 和 Google App Engine 开始。

我已经在网上学习了一个教程,现在,我的 bean-realted xml 在启动时出现了问题。

这是代码

<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context/
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="my.example">

其中所有java文件的根包是“my.example”。子包是带有子包的“模型”和“控制器”。现在。

当我启动应用程序时,我收到此错误:

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 10 in XML document from ServletContext resource [/WEB-INF/spring-servlet.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:component-scan'.

有更多的堆栈跟踪。

有谁知道我该如何解决这个问题?我检查了 XSD,它们似乎是正确的。

4

3 回答 3

1

问题是架构位置与您的 spring-context 依赖项不兼容。

代替

http://www.springframework.org/schema/context/spring-context.xsd

经过

http://www.springframework.org/schema/context/spring-context-2.5.xsd

这应该够了吧!我使用的是 spring-context 3.1.1,并且在参考http://www.springframework.org/schema/context/spring-context-2.1.xsd时遇到了同样的错误

但是,您还应该做一个 maven 树依赖并检查您是否有不同的 spring 版本。这个错误也可能是由于这个事实......

于 2013-04-17T23:07:12.890 回答
1

您可能缺少 spring-context.jar,它包含上下文模式的定义。

于 2012-07-11T21:47:08.140 回答
1

我不知道这是否有帮助,但是在使用maven shade 插件制作单个 .jar 时,我遇到了一个与您非常相似的错误,并且 shade 插件清除了.jarspring.handlersspring.schemas.META-INF/

这个 SO 答案为我指明了正确的方向:https ://stackoverflow.com/a/3650844/7008

关于使用 AppendingTransformer 将这些弹簧位添加回您的META-INF/文件夹的文档对我有用:http ://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer

于 2012-10-03T19:45:59.063 回答