从轻松的javascript使用功能调用OSGi服务

dif*_*ffa 2 rhino aem sightly

我试图从一个轻松的JavaScript使用功能访问OSGi服务.通过吊索SlingScriptHelper.我可以sling.getService(Service.class)从javascript 调用该方法,但我不知道如何在javascript中指定类.

看起来应该可以使用完全限定名称或使用rhino来引用java类importPackage(..).

但是,我得到以下异常:

org.apache.sling.scripting.sightly.SightlyException:
org.mozilla.javascript.EvaluatorException: Can't find method
org.apache.sling.scripting.core.impl.InternalScriptHelper.getService(object).
Run Code Online (Sandbox Code Playgroud)

小智 11

为此,请Packages在完全限定的类名前加上,例如

var myService = sling.getService(Packages.com.myco.MyService);
Run Code Online (Sandbox Code Playgroud)

(com.myco.MyService服务接口在哪里)

请参阅https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/content/src/main/content/jcr_root/apps/acs-commons/sightly/templates/dhlm.js#L23举个例子.