从OSGi包中的目标导入包

时间:2013-07-22 10:24:25

标签: java osgi

我在OSGi包中导入包时遇到问题。

名为org.semanticweb.HermiT.datatypes.xmlliteral的程序包包含在jar文件org.semanticweb.HermiT.jar中。此jar包含在我的目标定义中,并在我的运行配置中选择。我的目标将其识别为OSGi包,因此不应该是问题所在。当我尝试在我自己的bundle中导入包时,我得到一个错误,说没有bundle导出包。谁知道可能是什么问题?

1 个答案:

答案 0 :(得分:3)

检查“org.semanticweb.HermiT.jar”的标准下载,它没有Export-Package。因此,JAR中的所有软件包都不能被其他OSGI组件使用。

更新:

pax-url wrap plugin可以帮助你将非osgi JAR包装成osgi包并添加任意MANIFEST行。

https://ops4j1.jira.com/wiki/display/paxurl/Wrap+Protocol

可能还有一个原因是他们不包含Export-Package。您可能想直接询问创作者以确保您没有找到麻烦。

您也可以只更新您拥有的JAR,然后在部署时始终使用它。实际上有一些选项。

您还可以看到这个项目是如何做到的:

http://iks-project.googlecode.com/svn-history/r794/sandbox/kres/trunk/eu.iksproject.kres.shared/dependency/hermit124/pom.xml

他们使用maven bundle插件创建一个pom.xml并提供他们的OWN清单条目。