【发布时间】:2012-02-11 14:34:35
【问题描述】:
我正在使用 osgi 迈出第一步,但我创建的包有问题。
我在 Eclipse 中开发了 3 个捆绑包(它们是插件项目)。当我使用新的空目标在 eclipse 中运行我的包时,它们工作得非常好。
然后我尝试导出它们并在没有 Eclipse 的情况下运行它们我遇到了问题。我为它们中的每一个创建了一个 jar 文件(使用 export ->deployable 插件),然后我将它们安装在一个正在运行的 equinox 容器中(v3.7.1,来自 eclipse 的插件目录),我得到了很多 RuntimeErrorException 的 ClassNotFoundExceptions
这看起来像是一个类路径问题。我认为我没有正确导出捆绑包,但我不确定。
问题只发生在 2 个捆绑包中,它们使用了额外的库
我怎样才能正确地做到这一点?
如果您需要,这里是full stack
【问题讨论】:
-
您能否为每个罐子粘贴 META-INF/MANIFEST.MF?我对 Import-Package 部分特别感兴趣。在我看来,要么没有包在你的 OSGi 容器中导出这个包,要么它不存在于 Import-Package 中。如果您在容器中粘贴所有捆绑包的导出包列表,这也将非常有用(我从未使用过 Equinox,但我想这应该可以解决问题:“vsh 包列表”)。