【发布时间】:2012-04-12 14:16:15
【问题描述】:
我正在开发 2 个 jar 文件(jar1 和 jar2 - 2 个 jar 的 pom.xml 中的打包类型是 jar)并将它们安装到 serviceMix 中。 Jar1 将使用来自 jar2 的一些包。
在 manifest.mf 文件中,我使用了 jar1 和 jar2 的导入和导出。安装到 serviceMix 4.3.0 后。一切进展顺利。从 jar 1 开始,我可以使用 jar2 中的包(我通过调试代码知道这一点)。但是问题就在这里:
The structure of Jar2:
jar2:/
.
com
abc
.......(classes)
META-INF
MANIFEST.MF
FactoryContext.xml
The short version of jar2's MANIFEST.MF is
Bundle-ClassPath: .
Bundle-Name: jar2
Bundle-SymbolicName: jar2
Bundle-Version: 1.0.0
Export-Package: com.abc
Import-Package: xyz
Tool: Bnd-1.50.0
Jar1 调用 Jar2 的一个方法,该方法使用下面的语句
context = new ClassPathXmlApplicationContext("FactoryContext.xml");
每当它进入这个语句时,它总是抛出异常,说 FactoryContext.xml 不存在。 (我来宾这个文件不在类路径中)
你知道如何让它工作吗?
【问题讨论】:
-
用更广泛的“osgi”标签重新标记,这不是特定于 Karaf/ServiceMix,您可能会获得更多视图。
标签: osgi bundle classpath apache-karaf apache-servicemix