Hi Experts,
Whenever I am trying to do TagManager.getNameSpaces()
or TagManager.getTags(resource)
I am getting null pointer Exception.
My Tags are present under /content/cq:tags/
Also I have installed Service Pack 6.4.3
Also resourceResolver is having readSystem as subservice.
Can you anyone help on this?
Solved! Go to Solution.
Views
Replies
Total Likes
Hi sagarv13144480 ,
As you're using the service user to read the tags.Can you please make sure the below things:
<bundle symbolic name>:<any name of service>=<system user id>
Reference: How to get Service Resource Resolver? – Rahul Mengji
Hi,
Can you please check if resourceResolver is not null?
If it is not null, then you can do
TagManager tm = resourceResolver.adaptTo(TagManager.class)
tm.getNameSpaces()
TagManager ("The Adobe AEM Quickstart and Web Application.")
Hi Arun,
resourceResolver is not null and I am doing the same as suggested by you hence confused.
Is it a bug?
How have you acquired the TagManager? What kind of resource resolver are you using?
Hi
resourceResolver = resourceResolverFactory.getServiceResourceResolver(Map having readSystem subservice)
Resource resource = resourceResolver.getResource("/content/cq:Tags");
TagManager tagMgr = resource.adaptTo(TagManager.class);
Tag[] Tags = tagMgr.getNamespaces();
In which statement do you get the NPE? Please ensure that you check the return value of the adaptTo() call. But also resourceResolver.getResource() can return null if the resource does not exist.
Does your service user have read permission on /content/cq:tags?
At line number 3.
adapt TagManager from ResourceResolver instead of Resource.
TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
To see the full list of available adaptions please check [1].
[1] localhost:4502/system/console/adapters
A resource can also be adapted to the TagManager.
Hi,
I think its because, the sling request is not sent in your servlet.I also faced the same issue.Try using sling request in resource resolver.I Hope it will work.
private static final String tagid = "/content/cq:tags/properties";
TagManager tagManager = slingRequest.getResourceResolver().adaptTo(TagManager.class);
Tag tag = tagManager.resolve(tagid);
Resource resource = slingRequest.getResourceResolver().getResource(tagid);
Tag[] pagetag = tagManager.getTags(resource);
out.print(tag.getNamespace());
Hi sagarv13144480 ,
As you're using the service user to read the tags.Can you please make sure the below things:
<bundle symbolic name>:<any name of service>=<system user id>
Reference: How to get Service Resource Resolver? – Rahul Mengji
Views
Likes
Replies