有一个运行Equinox的OSGi应用程序。我想看看应用程序提供的服务。我怎样才能做到这一点?有没有办法在OSGi应用程序中查看注册的服务?
9
A
回答
10
这取决于您是指以交互方式,使用OSGi shell还是以编程方式从您的应用程序。
交互
可以使用Equinox console。请参阅“服务”。要仅查看已部署的服务,您需要使用LDAP过滤器。这里有一个例子:
(objectClass=my.package.name.*)
另见@Neil巴特利特的答案,可能会更容易,你可以仅仅通过约束捆绑ID(假设你知道它,但是这是很容易找到)。
编程方式
使用ServiceTracker的方法。 Neil also wrote all about this,所以一定要确保给他你的upvotes太:)
11
从GOGO外壳类型:
inspect cap service
,将显示所有捆绑注册的所有服务。如果你想显示具体的捆绑服务,然后键入:
inspect cap service <id>
哪里<id>
是你感兴趣的包的数字包ID
1
到目前为止,我的意思是迄今为止,最好的。到的方法请参阅您的服务和数千个细节更多的是使用Apache Felix Webconsole,然后安装XRay。您可能想阅读我的first和second blog关于此捆绑包。
0
如果你正在寻找刚刚启动已注册,但尚未开始,并希望动态地启动它特定的服务,您可以用得到的包:
Bundle bundle = Platform.getBundle("com.example.com.class");
//然后启动捆绑
bundle.start();
//检查服务引用
ServiceReference<IExampleService> serviceReference = b.getBundleContext().getServiceReference(IExampleService.class);
0
根据[API文档] [1],您可以调用getContext().getAllServiceReferences(clazz, filter)
方法来获取在指定的类下注册并匹配指定的过滤器表达式的所有服务的列表。在两个参数上传递null
将获得所有服务。
相关问题
- 1. 有没有办法远程查看Swing应用程序?
- 2. 有没有办法查看谁修改了注册表?
- 3. 有没有什么办法可以查看应用程序
- 4. 有没有办法在Three20中用查询参数注册url?
- 5. 有没有办法在Facebook上注册Google+上的应用程序?
- 6. 没有为.NET Core Kestrel应用程序注册服务
- 7. 有没有办法在Symfony2中查看应用程序的配置?
- 8. 有没有办法在SQLite中注册查询?
- 9. 有没有办法在谷歌应用程序引擎中查看memcache数据?
- 10. 有没有办法实时查看SQL服务器从我的应用程序接收到的查询语句?
- 11. 有没有办法在应用程序中查找对象?
- 12. 有没有办法在Web应用程序中使用Web服务(WCF)?
- 13. 在OSGi扩展束中注册服务
- 14. 有没有办法在Wordpress中完全禁用用户注册?
- 15. 有没有办法轻松跟踪多个OSGi服务?
- 16. 有没有办法在Tomcat服务器中运行Node.js应用程序?
- 17. 有没有办法查看Android Google服务源代码?
- 18. FB Connect:有没有办法查看登录用户的Facebook应用程序?
- 19. OSGI中的多个服务注册表
- 20. Java/OSGi将现有应用程序修改为OSGi服务
- 21. 在web api上的异常asp.net mvc6应用程序,我没有注册服务
- 22. 有没有办法从应用程序的.ipa档案中查看应用程序的.entitlements文件?
- 23. 有没有办法以编程方式将注册方法添加到REST Web服务而不使用注释?
- 24. 有没有办法查看Hapi服务器中的所有路由
- 25. 有没有办法在我的应用程序中使用mstest
- 26. 在java中,有没有办法检查Windows服务的状态?
- 27. 有没有办法使用XML Literals查看Web服务调用的结果?
- 28. 有没有办法检查performSelector:withObject:afterDelay:是否已被注册?
- 29. 有没有办法备份我的应用程序服务/ UserGrid数据
- 30. 有没有办法在IIS上注册用户名和密码?
它似乎显示日食osgi服务正在运行。我想看看我已部署的osgi应用程序提供的服务。有没有办法做到这一点? – user840930 2012-08-07 15:33:17
同样,你需要使用一个过滤器来减少它们。另外,在一些控制台(我不确定Equinox控制台)中,您可以通过源代码包进行过滤... Neil的第二个代码示例就是一个示例。 – 2012-10-17 08:51:12