猿问

如何在 aem groovy 控制台中获取服务?

我需要创建一个 Java 服务,并从 aem groovy 控制台请求该服务。


我创建了一个作为 Java 类的服务,构建并部署到本地 aem 实例,当我尝试使用 getService 函数询问它时,它不起作用,并且出现错误。


我正在尝试以这种方式获得服务:


def jcrService = getService(TestService.class)

out.println(jcrService.test())

并以这种方式:


import example.core.services.TestService;


TestService testService = new TestService();

out.println(testService.test())

当我导入我的服务类时,它正在工作。但是当我实现与 jcr.Session 和 jcr.Nodes 一起工作的基本接口时,它不起作用。


哈士奇WWW
浏览 110回答 1
1回答

杨__羊羊

提供 FQCN(完全合格的类名)对我来说很好。请找到以下示例。常规脚本:def testService = getService("com.project.services.TestService")println "title is: " + testService.getTitle();print "url is: " + testService.getUrl();结果:title is: Test Service Titleurl is: http://localhost:4502测试服务:package com.project.services;public interface TestService {    public String getTitle();    public String getUrl();}测试服务实现package com.project.services.impl;import org.osgi.service.component.annotations.Activate;import org.osgi.service.component.annotations.Component;import org.osgi.service.metatype.annotations.Designate;import com.project.services.configuration.TestServiceConfig;import com.project.services.TestService;@Component(service = TestService.class, name = "TestService", immediate = true)@Designate(ocd = TestServiceConfig.class)public class TestServiceImpl implements TestService {    private String url;    @Override    public String getTitle() {        return "Test Service Title";    }    @Override    public String getUrl() {        return url;    }    @Activate    protected void activate(TestServiceConfig testServiceConfig) {        url = testServiceConfig.url();    }}测试服务配置package com.project.services.configuration;import org.osgi.service.metatype.annotations.AttributeDefinition;import org.osgi.service.metatype.annotations.ObjectClassDefinition;@ObjectClassDefinition(name = "Test Service Config", description = "Test Service Configuration.")public @interface TestServiceConfig {    @AttributeDefinition(name = "url", description = "Provide URL for localhost")    String url() default "http://localhost:4502";}
随时随地看视频慕课网APP

相关分类

Java
我要回答