【问题标题】:Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]找不到 XML 模式命名空间的 Spring NamespaceHandler [http://www.springframework.org/schema/context]
【发布时间】:2015-04-27 12:32:29
【问题描述】:

我尝试将 Spring 集成到 OSGI Karaf 中,但遇到了问题。 我制作了一个好的 WAB 文件,然后安装它。安装后,当 Web 容器(Apache Felix)尝试解析 spring-servlet.xml 时,我遇到了以下异常:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]

我已经阅读了几乎所有关于此的主题,但我没有找到任何解决方案。 spring-servlet.xml 文件位于 /WEB-INF/spring/ 中。

文件是:

<?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" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

  <context:component-scan base-package="xyz"/>
  <mvc:annotation-driven/>
</beans>

pom.xml 文件

<!-- Spring core & mvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>org.springframework.web.servlet</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-asm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

【问题讨论】:

  • 你在WEB-INF/lib目录下打包了哪些jar包?
  • 我有所有spring相关的jar文件,比如web、webmvc、beans、core、context
  • spring 上下文 jar 版本是否与架构匹配(即在您的情况下为 3.0)?您的应用服务器 lib 文件夹是否有任何不同版本的 spring 库?在您的架构位置中,您已将上下文和 bean 指向 3.0 版本,但 mvc 指向默认值 4.1,这可能不是问题,但请尝试将正确的版本添加到架构位置。
  • 我使用 spring 3.1.0 我应该将 3.1 添加到架构中吗?
  • 如果您的 jar 版本是 3.1,您的架构指向 3.0 而不是 3.1,然后更正架构的版本。

标签: java spring spring-mvc apache-karaf


【解决方案1】:

我已经解决了这个问题。基本上问题在于,在 Karaf 的 feature.xml 文件中,我没有安装所有 spring 功能,我的意思是所有核心、aop、servlet 等。

【讨论】:

    猜你喜欢
    • 2019-05-07
    • 2012-01-21
    • 2013-11-01
    • 2011-11-03
    • 2014-04-19
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多