AEM ResourceResolverFactory在HTL组件java类中为null

时间:2016-11-24 14:37:15

标签: aem sling

我有一个像

这样的HTL组件类
MyComponent extends WCMUser{
@Reference
private ResourceResolverFactory  resourceResolverFactory;

但是当我尝试使用它时,我会得到NullPointerException。

我甚至尝试过使用@Service& @Component SCR标签,但没有帮助。

2 个答案:

答案 0 :(得分:2)

您不能将@Reference或其他注释与Java Use API一起使用,因为它不被视为OSGi服务。而是使用getSlingScriptHelper()获取SlingScriptHelper对象,然后可以使用该对象获取服务。

public MyComponent extends WCMUsePojo {

    public void activate() {
        getSlingScriptHelper().getService(<<SomeService.class>>);
    }
}

但是,如果它只是您需要的ResourceResolver,您可以在getResourceResolver()课程中调用WCMUsePojo方法。

可以找到有关Java Use-API的更多信息in this official doc

答案 1 :(得分:0)

知道了,所以我可以创建另一个服务,在那里获得ResourceResolverFactory。在那里,我可以在此服务中使用ResourceResolverFactory或将其传递给WCMUse类。