无法使用 java 独立应用程序在 OSGi (Karaf) 中为 XML 架构命名空间找到 Spring NamespaceHandler

Unable to locate Spring NamespaceHandler for XML schema namespace in OSGi (Karaf) with java standalone application

同时将 Java 独立模块部署为捆绑包,它与 Felix osgi 容器 karaf(3.0.3) 中的 spring 模块具有依赖关系。 spring 3.1.4 版本已正确安装,并在捆绑包中导入。但是,从包中加载 appcontext.xml 到 classloader. classpathXMLApplicationContext 时,我们得到,

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

有解决此问题的帮助吗?

其他细节:spring-context 在 osigi 容器 (karaf) 中作为单独的包部署。

问题一: 是否可以在不更改任何配置的情况下从捆绑包中引用 spring-context.xsd?

我已经按照以下步骤解决了这个问题。如果您正在将现有的 spring 项目迁移到 OSGI karaf,它可能会有用。

首先使用osgi容器(karaf)提供的spring-dm特性。将 appContext-*.xml(所有 spring 配置文件放在 /META_INF/spring 文件夹下)。 spring-dm 将负责解析名称空间处理程序并为您的项目创建应用程序上下文。