首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Osgi包找不到osgi服务

Osgi包找不到osgi服务
EN

Stack Overflow用户
提问于 2015-05-09 05:16:20
回答 1查看 586关注 0票数 0

我在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’公开的服务

我有两个办法解决这个问题

  1. 在这个阶段,如果我只重新启动包'B',那么bundle 'B‘就会找到由bundle 'A’公开的OSGI服务。重新启动包并不是明显的官方解决方案:)
  2. 在包'B‘中,在导入osgi服务时,如果将基数添加为0:1,则不会发现任何问题。但是我不能这样做,因为包'A‘公开的服务对于包'B’中的某些功能是必需的。

有人能告诉我为什么我要观察这种行为,以及如何解决它吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-05 08:36:33

请注意,当bundle B在正常的spring扩展程序进程之外创建其应用程序ctx时,可能会发生这种情况。例如,bundle B基于外部事件创建一个应用程序ctx,应用ctx导入从包A导出的osgi服务。如果您使用spring来导出/导入osgi服务,则使用ServiceTracker通过BundleActivator

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30136306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档