有一個運行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