Publicar ativos com o status "Mais tarde"
O ativo foi publicado com êxito após a alteração do tipo de propriedade cq:tags
para String Array.
Descrição description
Ambiente
Adobe Experience Manager (AEM)
Problema
Ocorre falha contínua ao publicar vários ativos no AEM, especialmente imagens. Muitas vezes as imagens ficaram presas em um status interminável "Mais tarde", enquanto em outros momentos, elas estavam presas no estado "Pendente", falhando em "Não publicado".
Ao tentar "Publish rápido" um ativo, o error.log
exibe o seguinte:
error.log
*IP 8675309009900 POST /libs/xxx/core/content/reference.json HTTP/1.1 org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught Throwable
javax.servlet.ServletException: java.lang.RuntimeException: error while getting tags for '/content/dam/path-to-asset/jcr:content/metadata' at
com.xxx.xx.xxx.core.impl.reference.ActivationReferenceSearchServlet.doGet(ActivationReferenceSearchServlet.java:140) com.xxx.xx.xxx.xx-xxx-core:5.14.28 at
com.xxx.xx.xxx.core.impl.reference.ActivationReferenceSearchServlet.doPost(ActivationReferenceSearchServlet.java:100) com.xxx.xx.xxx.xx-xxx-core:5.14.28 at
org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) org.apache.sling.api:2.25.0 at
org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) org.apache.sling.api:2.25.0 at
org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:374) org.apache.sling.api:2.25.0 at
org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:583) org.apache.sling.engine:2.9.0 at
org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) org.apache.sling.engine:2.9.0
…
Caused by: javax.jcr.ValueFormatException: cq:tags = <value> is single-valued. at
org.apache.jackrabbit.oak.jcr.delegate.PropertyDelegate.getMultiState(PropertyDelegate.java:137) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
org.apache.jackrabbit.oak.jcr.session.PropertyImpl$6.perform(PropertyImpl.java:266) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
org.apache.jackrabbit.oak.jcr.session.PropertyImpl$6.perform(PropertyImpl.java:261) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:210) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
org.apache.jackrabbit.oak.jcr.session.PropertyImpl.getValues(PropertyImpl.java:261) org.apache.jackrabbit.oak-jcr:1.42.0.T10140008675309-b8e0cd6 at
com.xxx.xx.tagging.impl.JcrTagManagerImpl.getTags(JcrTagManagerImpl.java:797) com.xxx.xx.xx-tagging:5.13.12*
Resolução resolution
Como pode ser visto no error.log
, o problema é causado por "javax.jcr.ValueFormatException: cq:tags = <value> is single-valued"
A propriedade cq:tags
é na verdade String Array
, que é uma propriedade de vários valores. No entanto, nesse caso, era do tipo String
, o que levou ao erro.
Ao alterar o tipo de propriedade cq:tags
para String Array
, o ativo foi publicado com êxito.
Link de Documentação
Mais ajuda sobre a propriedade cq:tags
pode ser encontrada no seguinte link de documentação no Guia do Usuário do AEM:
Estrutura de Marcação AEM