我有一个像
这样的HTL组件类MyComponent extends WCMUser{
@Reference
private ResourceResolverFactory resourceResolverFactory;
但是当我尝试使用它时,我会得到NullPointerException。
我甚至尝试过使用@Service& @Component SCR标签,但没有帮助。
答案 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类。