OSGi:如何找出哪些捆绑包正在使用我出口的服务?

时间:2017-04-05 13:10:16

标签: java osgi knopflerfish

我试图获取一个捆绑包列表,这些捆绑包导入我的捆绑包导出的服务(我无法找到获取其他捆绑包清单的方法)或者获取订阅的捆绑包列表我的捆绑服务正在发布的服务。

到目前为止,我试图列出其他捆绑包正在使用的所有ServiceReferences,以查看他们是否正在使用我的,但没有成功。

谢谢。

2 个答案:

答案 0 :(得分:1)

使用ServiceReference注册服务,您可以调用getUsingBundles方法来查找当前正在使用该服务的包。

答案 1 :(得分:1)

你也可以尝试这个(在OSGi控制台中):

install http://downloads.skysail.io/skysail-webconsole/webconsole.all.jar
start <id of the new bundle>

在浏览器中打开http://localhost:2002并导航至“服务” 点击有问题的服务 检查“服务详细信息”页面的“使用捆绑包”行

请注意,此项目(https://github.com/evandor/skysail-webconsole)目前仅是概念验证。但它可能已经对某些用例有用。

(我对任何反馈都很满意;)