アセットの公開が「後で」ステータスでスタックしました
cq:tags プロパティタイプを String Array. に変更した後、アセットが正常に公開されました
説明 description
環境
Adobe Experience Manager(AEM)
問題
AEMで複数のアセット(特に画像)を公開すると、継続的なエラーが発生します。 多くの場合、画像は終わりのないステータス「後で」スタックしましたが、他の時間では、「保留中」の状態でスタックし、「未公開」に失敗しました。
アセットを「クイックPublish」しようとすると、error.log に次の項目が表示されます。
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*
解決策 resolution
error.log に示すように、問題の原因は "javax.jcr.ValueFormatException: cq:tags = <value> is single-valued" です
cq:tags プロパティは、実際には複数の値を持つプロパティである String Array です。 ただし、この場合はタイプ String であり、エラーが発生しました。
cq:tags プロパティタイプを String Array に変更した際に、アセットが正常に公開されました。
ドキュメントリンク
cq:tags プロパティのヘルプについては、AEM ユーザーガイドの次のドキュメントリンクを参照してください。
AEM タグ付けフレームワーク
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f