当我编译我的项目时,我收到一个错误:无法找到Spring NamespaceHandler

时间:2012-02-21 15:07:30

标签: java spring maven

引起:org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法找到XML架构命名空间的Spring NamespaceHandler [http:\ www.springframework.org/schema/jdbc]

如何解决?

4 个答案:

答案 0 :(得分:5)

如果您使用的是spring 3.0x,请检查spring-jdbc-3.0 jar是否正确放置在WEB-INF lib文件夹中。

这主要是一个依赖问题,检查pom.xml文件是否具有spring jdbc相关jar的正确依赖...

答案 1 :(得分:1)

它可能是一个缺少的相关jar,但异常显示了一个奇怪的命名空间url:

http:\www.springframework.org/schema/jdbc

您应该检查您的xml配置文件,并确保您具有以下命名空间声明:

    xmlns:jdbc="http://www.springframework.org/schema/jdbc"

和以下schemaLocation:

    http://www.springframework.org/schema/jdbc
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd 

或直接指向此处始终拥有最新版本的xsd:

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

答案 2 :(得分:0)

在使用maven构建和组装时遇到了同样的问题。我修复了这个添加一些变换器到 maven-shade-plugin

这两个变换都有效,错误消失了:

<transformer
      implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
      implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/spring.schemas</resource>
</transformer>

答案 3 :(得分:0)

我通过将Spring依赖项(spring-jdbc,spring-tx)的版本从版本4.X.X更改为3.X.X来修复它