有一个运行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. 有没有办法实时查看SQL服务器从我的应用程序接收到的查询语句?
- 8. 有没有办法在应用程序中查找对象?
- 9. 有没有办法在Web应用程序中使用Web服务(WCF)?
- 10. 有没有办法轻松跟踪多个OSGi服务?
- 11. 有没有办法查看Android Google服务源代码?
- 12. FB Connect:有没有办法查看登录用户的Facebook应用程序?
- 13. Java/OSGi将现有应用程序修改为OSGi服务
- 14. 在web api上的异常asp.net mvc6应用程序,我没有注册服务
- 15. 有没有办法查看Hapi服务器中的所有路由
- 16. 有没有办法在我的应用程序中使用mstest
- 17. 在java中,有没有办法检查Windows服务的状态?
- 18. 有没有办法使用XML Literals查看Web服务调用的结果?
- 19. 有没有办法检查performSelector:withObject:afterDelay:是否已被注册?
- 20. 有没有办法在Dropwizard/Jersey中注册整个模块?
- 21. 有没有办法在C#中伪造注册表项?
- 22. 有没有办法清除导航服务或不注册框架?
- 23. 有没有办法查看xcode中包含文件的顺序
- 24. 有没有办法在ASP.NET中的web服务中使用System.Drawing?
- 25. 有没有办法在Blue Prism中“激活”html应用程序?
- 26. 有没有办法在javaFX应用程序中集成html IFrame
- 27. 将django应用程序迁移到apache服务器:ImportError:没有注册模块
- 28. Angular没有看到注入的服务
- 29. 有没有办法从TFS中的代码审查请求中查看Windows窗体应用程序的GUI?
- 30. 有没有办法拨打OData服务反射提供程序?
它似乎显示日食osgi服务正在运行。我想看看我已部署的osgi应用程序提供的服务。有没有办法做到这一点? – user840930 2012-08-07 15:33:17
同样,你需要使用一个过滤器来减少它们。另外,在一些控制台(我不确定Equinox控制台)中,您可以通过源代码包进行过滤... Neil的第二个代码示例就是一个示例。 – 2012-10-17 08:51:12