【发布时间】: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