2

当我使用组件扫描时,我得到以下异常:

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-scanevertying 时,解析很好,但显然这不是一个解决方案。是什么导致了问题?

我已经阅读了很多关于旧版本 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>
4

2 回答 2

1

我有一个类似的错误,但是正在加载的 xml 上下文文件有一个对 spring-webmvc 的命名空间引用。我忘记将 mvc 依赖项添加到我的 pom 文件中。

于 2015-10-06T22:39:01.670 回答
0

WEB-INF/lib如果罐子已经在耳中,这也可能是由于意外将 Spring deps 包含在薄战争中造成的META-INF/lib

如果您使用 maven,这很常见。

于 2019-09-27T13:39:32.227 回答