【发布时间】:2014-03-16 17:34:43
【问题描述】:
当我使用组件扫描时,我得到以下异常:
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>
【问题讨论】:
-
类路径中有上下文支持 jar 吗?
-
这个错误的另一个主题是classpath上有一个旧版本的spring jar。
-
愚蠢的问题,但您确实有一个结束
</beans>标记,对吧?它在提供的代码中被省略了。 -
进一步调查,果然有第二个Spring JAR。我们正在使用 WebLogic,并且加载并隐藏了一个“重新打包”的 JAR……所以现在我必须解决这个问题……或者不使用 Autowire!
-
Ugg oracle 去过那里
标签: java spring component-scan