当我使用组件扫描时,我得到了以下例外:
Caused By: org.springframework.beans.FatalBeanException: Class [org.springframework.context.config.ContextNamespaceHandler]
for namespace [http://www.springframework.org/schema/context]
does not implement the [org.springframework.beans.factory.xml.NamespaceHandler] interface
at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:126)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1433)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:195)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
这是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-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="version" class="java.lang.String">
<constructor-arg value="${project.version}"/>
</bean>
<context:component-scan base-package="base"/>
当我删除component-scan
evertying时,解析得很好,但显然这不是解决方案。什么是问题?
我已经阅读了很多关于旧版本的Spring在类路径上的内容,但我可以验证情况并非如此。
以下是我对$ {spring.version}为3.2.5-RELEASE。
的依赖 <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
答案 0 :(得分:1)
我遇到了类似的错误,但是正在加载的xml上下文文件有一个对spring-webmvc的命名空间引用。我忘了将mvc依赖项添加到我的pom文件中。
答案 1 :(得分:0)
如果罐子已经放在耳朵的WEB-INF/lib
中,这也可能是由于在薄战META-INF/lib
中意外地包括了弹簧兵。
如果使用maven,这很常见。