HTL 组件中的 AEM ResourceResolverFactory null java class
AEM ResourceResolverFactory null in HTL component java class
我有一个 HTL 组件 class 就像
MyComponent extends WCMUser{
@Reference
private ResourceResolverFactory resourceResolverFactory;
但是当我尝试使用它时,我遇到了 NullPointerException。
我什至尝试使用@Service 和@Component SCR 标签,但没有帮助。
您不能将 @Reference
或其他注释与您的 Java 使用 API 一起使用,因为它不被视为 OSGi 服务。而是使用 getSlingScriptHelper()
获取 SlingScriptHelper
对象,然后可以使用该对象获取服务。
public MyComponent extends WCMUsePojo {
public void activate() {
getSlingScriptHelper().getService(<<SomeService.class>>);
}
}
但是,如果您只需要 ResourceResolver
,则可以调用 WCMUsePojo
class.
中可用的 getResourceResolver()
方法
有关 Java 使用 API 的更多信息,请参见 in this official doc。
知道了,所以我可以创建另一个服务,在那里获取 ResourceResolverFactory。在那里我可以在此服务中使用 ResourceResolverFactory 或将其传递给 WCMUse class.
我有一个 HTL 组件 class 就像
MyComponent extends WCMUser{
@Reference
private ResourceResolverFactory resourceResolverFactory;
但是当我尝试使用它时,我遇到了 NullPointerException。
我什至尝试使用@Service 和@Component SCR 标签,但没有帮助。
您不能将 @Reference
或其他注释与您的 Java 使用 API 一起使用,因为它不被视为 OSGi 服务。而是使用 getSlingScriptHelper()
获取 SlingScriptHelper
对象,然后可以使用该对象获取服务。
public MyComponent extends WCMUsePojo {
public void activate() {
getSlingScriptHelper().getService(<<SomeService.class>>);
}
}
但是,如果您只需要 ResourceResolver
,则可以调用 WCMUsePojo
class.
getResourceResolver()
方法
有关 Java 使用 API 的更多信息,请参见 in this official doc。
知道了,所以我可以创建另一个服务,在那里获取 ResourceResolverFactory。在那里我可以在此服务中使用 ResourceResolverFactory 或将其传递给 WCMUse class.