【发布时间】:2015-07-20 02:32:48
【问题描述】:
我有 2 个 osgi 包(比如 A 和 B)在 Jboss Fuse 中运行。我正在使用费利克斯。 “A”包公开了“B”包使用的服务。当我部署这两个捆绑包时,没有问题。当我执行 osgi:ls -u 时,我看到包“B”正在使用包“A”公开的服务
在我一起重新启动这 2 个捆绑包后,捆绑包“B”找不到捆绑包“A”公开的服务。在这个阶段,如果我执行命令 osgi:ls,我看到捆绑“A”公开了 OSGI 服务。当我执行 osgi:ls -u 时,我没有看到 bundle 'B' 正在使用 bundle 'A' 公开的服务
我有 2 个解决这个问题的方法
- 在这个阶段,如果我只重新启动捆绑“B”,那么会找到捆绑“B” Bundle 'A' 公开的 OSGI 服务。重启捆绑不明显 官方解决方案:)
- 在 bundle 'B' 中,在导入 osgi 服务时,如果添加基数 0:1 那么我没有发现任何问题。但我不能将其作为服务 对于 bundle 中的某些功能,bundle 'A' 公开是强制性的 'B'
谁能告诉我为什么我会观察到这种行为以及如何解决它? ?
【问题讨论】:
-
你使用 spring:osgi 来消费和暴露服务吗?