我在Jboss中运行了两个osgi包(比如A和B)。我在用费利克斯。'A‘包公开'B’包使用的服务。当我部署这两个包时,没有问题。当我执行osgi:ls -u时,我看到包'B‘正在使用由bundle 'A’公开的服务
在重新启动这两个捆绑之后,Bundle 'B‘无法找到由Bundle 'A’公开的服务。在这个阶段,如果我执行命令osgi:ls,我会看到OSGI服务由包'A‘公开。当我执行osgi:ls -u时,我没有看到包'B‘正在使用由bundle 'A’公开的服务
我有两个办法解决这个问题
有人能告诉我为什么我要观察这种行为,以及如何解决它吗?
发布于 2015-07-05 08:36:33
请注意,当bundle B在正常的spring扩展程序进程之外创建其应用程序ctx时,可能会发生这种情况。例如,bundle B基于外部事件创建一个应用程序ctx,应用ctx导入从包A导出的osgi服务。如果您使用spring来导出/导入osgi服务,则使用ServiceTracker通过BundleActivator。
https://stackoverflow.com/questions/30136306
复制相似问题