I need to adapt document metadata node to an object. The code is as below. But the object returns null. Did anyone face similar issue?
Resource resource = resourceResolver.getResource(destinationPath+"/"+JcrConstants.JCR_CONTENT+"/metadata");
DocumentInfo documentInfo = resource.adaptTo(DocumentInfo.class);
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
I don't know the DocumentInfo class, can you please give the full package name? Is there an adapter factory available for this at all? Check localhost:4502/system/console/adapters if an adapter with adapter class "Resource.class" and adaptable class "DocumentInfo.class" is registered.
adaptTo() is allowed to return "null" in case the adaption fails. Depending on the adapter factory the reasons are logged or not. So we clearly need to know much more information about the resource (or sub-resources) you are trying to adapt.
Jörg
Can you pls confirm whats the mine type of resource of destinationPath is ?
Views
Replies
Total Likes
We have seen this issue with events. If you are using a System user - try using the Admin call and whitelist the bundle. See if that helps resolve this.
Views
Replies
Total Likes
Hi smacdonald2008,
Thanks for the reply. I tried this too, but it doesn't work. Still the object returns null.
Thanks,
Anusha
Views
Replies
Total Likes
Hi,
The mime type is application/pdf.
Thanks,
Anusha
Views
Replies
Total Likes
See this thread to get metadata from a DAM asset -
Views
Replies
Total Likes
We will start this use case for an article near end of the week.
Views
Replies
Total Likes
Thanks smacdonald2008. I will wait for the document.
Asset asset = resource.adaptTo(Asset.class); is also returning null.
Views
Replies
Total Likes
Hi,
Reason is why you getting null after adopting because the resource you get from path is not Asset or DocumentInfo type its a Node.
Try like this as a Node and use Node api to deal with properties
Resource resource = resourceResolver.getResource(destinationPath+"/"+JcrConstants.JCR_CONTENT+"/metadata");
Node documentNode = resource.adaptTo(Node.class);
or Like this as a proper resource and use respective API.
Resource resource = resourceResolver.getResource(destinationPath);
DocumentInfo documentInfo = resource.adaptTo(DocumentInfo.class);
/Brijesh Yadav
Views
Replies
Total Likes
Also here is new API to work with assets. Assets HTTP API
Views
Replies
Total Likes
Hi,
I don't know the DocumentInfo class, can you please give the full package name? Is there an adapter factory available for this at all? Check localhost:4502/system/console/adapters if an adapter with adapter class "Resource.class" and adaptable class "DocumentInfo.class" is registered.
adaptTo() is allowed to return "null" in case the adaption fails. Depending on the adapter factory the reasons are logged or not. So we clearly need to know much more information about the resource (or sub-resources) you are trying to adapt.
Jörg
Thanks Jorg. I could figure out the issue now. DocumentInfo is a custom class that we have created. We are posting assets to DAM and have additional properties added to metadata.
Currently we are migrating from AEM 6.1 to 6.3. I missed the configuration for making DocumentInfo adaptable. I have added the same and now it is available in "/system/console/adapters" and working as expected.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies