Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

Tag an asset error - Caused by: javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {http://www.day.com/jcr/cq/1.0}tags

Avatar

Level 1

I have a custom servlet that extends the SlingAllMethodsServlet & deployed to Adobe CQ 5.6.1. It finds an existing tag using the TagManager class. This part is working. When tagging an Asset, getting this error. Please advise? Thanks.

Code:

resourceResolver = resolverFactory
                    .getAdministrativeResourceResolver(null);

AssetManager assetManager = resourceResolver.adaptTo(AssetManager.class);

 TagManager  tagManager = resourceResolver.adaptTo(TagManager.class);

 

Asset cqAsset = assetManager.createAsset(damAssetPath
                + assetFilePath, inputStream, asset.getMimeType(), true);

Resource resource = cqAsset.adaptTo(Resource.class);

tag = tagManager.resolve(tagKey);

Tag[] tags = new Tag[1];
tags[0] = tag;

tagManager.setTags(resource, tags);

Error:

 at com.day.cq.tagging.impl.JcrTagManagerImpl.setTags(JcrTagManagerImpl.java:570)

 at com.day.cq.tagging.impl.JcrTagManagerImpl.setTags(JcrTagManagerImpl.java:545)

 at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:148)

 at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:344)

 at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:375)

 at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:508)

 at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)

 at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:146)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:356)

 at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:168)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:254)

 at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)

 at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:301)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:106)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:290)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:64)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:221)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.theme.impl.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:74)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:107)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at com.day.cq.wcm.designimporter.CanvasPageDeleteRequestFilter.doFilter(CanvasPageDeleteRequestFilter.java:88)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:83)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:127)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter.doFilter(BackgroundServletStarterFilter.java:135)

 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

 at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processRequest(SlingRequestProcessorImpl.java:151)

 at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:206)

 at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)

 at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)

 at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:127)

 at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)

 at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:55)

 at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)

 at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:263)

 at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)

 at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:179)

 at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)

 at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)

[DEBUG,wire,main] http-outgoing-0 << "[\r][\n]"

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)

 at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)

 at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)

 at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)

 at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)

 at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)

 at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)

 at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)

 at com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:321)

 at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:340)

 at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:383)

 at com.day.j2ee.servletengine.ServletHandlerImpl.process(ServletHandlerImpl.java:335)

 at com.day.j2ee.servletengine.HttpListener$Worker.run(HttpListener.java:644)

 Caused by: javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {http://www.day.com/jcr/cq/1.0}tags

 at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:782)

 at org.apache.jackrabbit.core.NodeImpl.getApplicablePropertyDefinition(NodeImpl.java:851)

 at org.apache.jackrabbit.core.NodeImpl.getOrCreateProperty(NodeImpl.java:436)

 at org.apache.jackrabbit.core.NodeImpl$7.perform(NodeImpl.java:2121)

 at org.apache.jackrabbit.core.NodeImpl$7.perform(NodeImpl.java:2114)

 at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)

 at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)

 at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:2114)

1 Accepted Solution

Avatar

Correct answer by
Level 10

You are setting tag at asset level, set at metadata folder. Some thing like

Resource resource = cqAsset.adaptTo(Resource.class);
final Resource metadataResource = resolver.getResource(resource,"jcr:content/metadata");

.....

tagManager.setTags(metadataResource, tags);

View solution in original post

2 Replies

Avatar

Correct answer by
Level 10

You are setting tag at asset level, set at metadata folder. Some thing like

Resource resource = cqAsset.adaptTo(Resource.class);
final Resource metadataResource = resolver.getResource(resource,"jcr:content/metadata");

.....

tagManager.setTags(metadataResource, tags);

Avatar

Level 1

Thanks for the suggestion. I set the tag at metadata folder and it worked.