2014-11-03 45 views
1

我有一個服務運行在我的CQ5上,我想從工作流調用它的方法。 我的問題是,我如何從ECMA腳本獲得服務的引用?CQ5 ECMA腳本獲得服務參考

我已經嘗試過:

var myService= sling.getService(Packages.com.my.package.MyService.class); 

但我得到一個 「後失蹤名操作員。」 和

var myService= sling.getService(Packages.com.my.package.MyService); 

,但我得到空引用。

任何想法?

回答

2

我不確定在CQ工作流ECMA腳本中如何工作,但在普通的Sling服務器端Javascript中,sling.getService(Packages.com.example.MyServiceInterface)語法是正確的。

確保在/system/console/services的OSGi控制檯顯示與MyServiceInterface有效的服務。

+0

是的,它實際上工作正常。我的錯誤不是使用界面!感謝您給我提示的答案! – cq5beginner 2014-11-03 17:01:59

+2

只要說'null'是預期的響應,如果服務不可用,而不是錯誤 - 也就是說,你也應該在你的代碼中處理'null'的情況,因爲服務可以在你的應用程序生命週期中來來去去。 – anotherdave 2014-11-04 09:09:37