OSGi功能卸载工作正常,但仍然安装了捆绑包
编辑:用最新信息更新了这个问题...
我遇到了依赖功能背靠背“功能:卸载”命令的问题。 OSGi回应“状态正在改变......”,但通过接受其他请求,我们遇到了问题。
奇怪的是,这会导致功能卸载成功,但捆绑卸载失败。我们通过尝试适当地订购卸载请求并在步骤之间添加延迟来解决这个问题,但我希望有一个更强大的解决方案。
正如所建议的那样,我也尝试在步骤之间添加“osgi:refresh”......同样的行为。是否有另一种方法可以检测“刷新包”是否仍在运行以延迟后续请求等?
这是详细信息......
karaf @ root>功能:卸载PolicyUtil
karaf @ root>功能:卸载Policy1
karaf @ root>功能:卸载Policy2
通过线程“刷新包”状态更改捆绑包“file:/policy2.jar”的进度。
karaf @ root>功能:卸载Policy3
通过线程“刷新包”状态更改捆绑“file:/policy3.jar”的进度。
karaf @ root>功能:卸载Policy4
karaf @ root>功能:卸载Enabler1
通过线程“刷新包”状态更改捆绑“file:/enabler1.jar”的进度。
karaf @ root>功能:卸载Enabler2
通过线程“刷新包”修改bundle“file:/enabler2.jar”的进度状态。
之后...我们最终安装了未安装的功能(正确),但仍安装了一些软件包(不正确)
OSGi的:列表
[277] [已安装] [] [] [60]政策2
[278] [已安装] [] [] [60]政策3
[280] [已安装] [] [] [60]启用1
[281] [已安装] [] [] [60]启用2
特点:列表
[uninstalled] [1.0] PolicyUtil repo-0
[uninstalled] [1.0] Policy1 repo-0
[uninstalled] [1.0] Policy2 repo-0
[uninstalled] [1.0] Policy3 repo-0
[uninstalled] [1.0] Enabler1 repo-0
[uninstalled] [1.0] Enabler2 repo-0
没有找到相关结果
已邀请:
5 个回复
鲁釜头
这样的shell命令卸载一个bundle时,你实际上会调用
。正如你可以在那里阅读Javadoc,这不是整个故事。 该框架支持对框架其余部分影响最小的操作,因此它可以在不删除所有相关软件包的情况下卸载软件包。如果你真的想删除所有这些,你应该使用
命令。有关此内容的更多信息,请参阅Felix常见问题解答。 我能给出的最好建议是不发出多个可以相互交叉的
请求。如果你想删除一组包,我会发出非交叉
请求,然后是一个
。另外,我不会在单个系统中使用“常规”控制台和Karaf混合捆绑管理。 您还可以考虑使用外部管理器来安装和删除软件包。如果你想要远程管理,你可以选择Apache ACE(披露:我是Apache ACE提交者)。
伐教爸
际恃啸称桅
款去芳尾脊
娠侈脚惮顽