Resource Resolver returned as null via sling model

2019-09-20 17:14发布

Resource Resolver is being returned as null while injecting through sling models, let me know if anything I am missing :

I tried with :

@Model(adaptables = Resource.class)
public class Navigation {

   @Inject  @Source("sling-object")
   private ResourceResolver resourceResolver;

}

I also tried with:

@Model(adaptables = Resource.class)
public class Navigation {

  @Inject
  private ResourceResolver resourceResolver;

}

In both cases it was being returned as null and throwing a null pointer exception.

Let me know what I may be missing to correct this error.

2条回答
狗以群分
2楼-- · 2019-09-20 18:09

This is working for me using the @SlingObject annotation, rather than @Inject and @Source. Theoretically they should be doing the same thing, but figured I'll add this an answer just in case it helps someone else as well.

@Model(adaptables = Resource.class)
public class Navigation {

  @SlingObject
  private ResourceResolver resourceResolver;

}
查看更多
甜甜的少女心
3楼-- · 2019-09-20 18:13

Check if you have invoked <cq:defineObjects /> before adapting resource to model (<cq:defineObjects /> should be in your global.jsp file which should be included on the beginning of each component)

查看更多
登录 后发表回答