java - 从 OSGi 包中的目标导入包

标签 java osgi

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

名为 org.semanticweb.HermiT.datatypes.xmlliteral 的包包含在 jar 文件 org.semanticweb.HermiT.jar 中。这个 jar 包含在我的目标定义中,并在我的运行配置中被选中。我的目标将它识别为一个 OSGi 包,所以这不应该是问题所在。当我尝试在我自己的包中导入包时,我收到一条错误消息,指出没有包导出包。谁知道可能是什么问题?

最佳答案

检查“org.semanticweb.HermiT.jar”的标准下载,它没有导出包。因此,JAR 中的任何包都不能被其他 OSGI 组件使用。

更新:

pax-url wrap 插件可以帮助您将非 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

他们创建一个 pom.xml 并使用 maven bundle 插件提供他们自己的 list 条目。

关于java - 从 OSGi 包中的目标导入包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785141/

相关文章:

java - 将大二进制字符串转换为十六进制

java - 使用 JAXB 操作 XML 注释

java - 使用 gradle 生成 OSGI-INF/serviceComponent.xml

Java OSGi 集中式网络配置

java - 使用 Oracle Java 8 JRE 172 打开 JCEKS keystore 时出现 "java.io.IOException: Invalid secret key format"

Java StringTokenizer,空的空标记

java - 从 servlet 转发到 jsp 导致表单提交错误

java - 打开一个exe窗口

java - OSGi 和 Java native 接口(interface)

osgi - 使用 DS 的 OSGi 中的动态目标查询