由于mixin冲突(并使用经典UI),转出失败
了解如何修复因与内容更新操作配置冲突的mixin(使用经典UI)导致的转出失败。
描述 description
由于页面的缩略图节点上存在冲突的 jcr:mixinTypes,页面的转出失败。
当页面使用ClassicUI 配置了缩略图 并且最初转出(首次转出有效)时,会发生冲突。
此时,由于页面的缩略图结构上存在冲突的mixin,无法转出母版页,该结构介于:
- dam:缩略图
- cq:LiveRelationship
日志中的给定错误如下:
27.07.2022 15:48:07.091 *ERROR* [ 0:0:0:0:0:0:0:1 [ 1658929687039] POST /bin/wcmcommand HTTP/1.1] com.day.cq.wcm.msm.impl.commands.RolloutCommand Error during roll-out.
com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:824) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutPage(RolloutManagerImpl.java:693) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutPageRelations(RolloutManagerImpl.java:624) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rollout(RolloutManagerImpl.java:515) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.commands.RolloutCommand.performCommand(RolloutCommand.java:153) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.core.impl.commands.WCMCommandService$CommandHolder.performCommand(WCMCommandService.java:178) [ com.day.cq.wcm.cq-wcm-core:5.11.312]
at com.day.cq.wcm.core.impl.commands.WCMCommandServlet.performCommand(WCMCommandServlet.java:120) [ com.day.cq.wcm.cq-wcm-core:5.11.312]
at com.day.cq.commons.servlets.AbstractCommandServlet.doPost(AbstractCommandServlet.java:49) [ com.day.cq.cq-commons:5.11.18]
at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) [ org.apache.sling.api:2.20.0]
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) [ org.apache.sling.api:2.20.0]
[ ..]
Caused by: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:824) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:811) [ com.day.cq.wcm.cq-msm-core:5.11.84]
... 135 common frames omitted
Caused by: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:824) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:811) [ com.day.cq.wcm.cq-msm-core:5.11.84]
... 136 common frames omitted
Caused by: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:824) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:811) [ com.day.cq.wcm.cq-msm-core:5.11.84]
... 137 common frames omitted
Caused by: com.day.cq.wcm.api.WCMException: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:824) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:811) [ com.day.cq.wcm.cq-msm-core:5.11.84]
... 138 common frames omitted
Caused by: com.day.cq.wcm.api.WCMException: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at com.day.cq.wcm.msm.commons.BaseAction.execute(BaseAction.java:154) [ com.day.cq.wcm.cq-msm-commons:1.1.2]
at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:790) [ com.day.cq.wcm.cq-msm-core:5.11.84]
... 139 common frames omitted
Caused by: javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for dam:thumbnails
at org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeImpl.getNodeDefinition(EffectiveNodeTypeImpl.java:454) [ org.apache.jackrabbit.oak-core:1.8.22]
at org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager.getDefinition(ReadOnlyNodeTypeManager.java:396) [ org.apache.jackrabbit.oak-core:1.8.22]
at org.apache.jackrabbit.oak.jcr.session.NodeImpl$29.perform(NodeImpl.java:1031) [ org.apache.jackrabbit.oak-jcr:1.8.22]
at org.apache.jackrabbit.oak.jcr.session.NodeImpl$29.perform(NodeImpl.java:1023) [ org.apache.jackrabbit.oak-jcr:1.8.22]
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) [ org.apache.jackrabbit.oak-jcr:1.8.22]
at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) [ org.apache.jackrabbit.oak-jcr:1.8.22]
at org.apache.jackrabbit.oak.jcr.session.NodeImpl.getDefinition(NodeImpl.java:1023) [ org.apache.jackrabbit.oak-jcr:1.8.22]
at com.day.cq.wcm.msm.commons.ItemFilterImpl.excludes(ItemFilterImpl.java:91) [ com.day.cq.wcm.cq-msm-commons:1.1.2]
at com.day.cq.wcm.msm.impl.actions.ContentCopyActionFactory$ContentCopyAction.applyFilters(ContentCopyActionFactory.java:293) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.actions.ContentCopyActionFactory$ContentCopyAction.createCopy(ContentCopyActionFactory.java:245) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.impl.actions.ContentCopyActionFactory$ContentCopyAction.doExecute(ContentCopyActionFactory.java:208) [ com.day.cq.wcm.cq-msm-core:5.11.84]
at com.day.cq.wcm.msm.commons.BaseAction.execute(BaseAction.java:134) [ com.day.cq.wcm.cq-msm-commons:1.1.2]
... 140 common frames omitted
重现问题的步骤:
- 启动vanilla AEM 6.5.13.0
- 转到 /siteadmin(因此使用 经典UI)
- 打开 /content/we-retail/language-master/en/women 的页面属性
- 在图像 选项卡 中,将任意图像设置为缩略图
- 转出页面
- 现在转到 站点UI
- 再次打开 /content/we-retail/us/en/women 的页面属性
- 在 缩略图 选项卡中,单击 生成预览 并保存更改
- 现在在/siteadmin中再次转出该页面
解决方法 resolution
转出期间出现此问题,因为AEM无法在jcr:content下创建live copy页面(https://experienceleague.adobe.com/content/we-retail/us/en/women/jcr%EF%BC%9Acontent/image/file/jcr%EF%BC%9Acontent?lang=zh-Hans)的“dam:Thumbnails”节点,并且因为转出mixinType“dam:Thumbnails”期间不适用于live copy页面节点“/content/we-retail/us/en/women/jcr:content/image/file/jcr:content”,并且只能在“dam:Thumbnails”节点下创建“文件夹。
MSM默认行为是忽略转出[ 0]期间在源节点中添加的新mixin,因此未将其添加到“/content/we-retail/us/en/women/jcr:content/image/file/jcr:content”。
为了解决此问题,可以通过内容更新操作配置更改此行为。
默认忽略每个mixin类型,如下面的屏幕快照所示:
应更新以使用:
(?!.*dam:Thumbnails).*
如下面的屏幕快照所示:
这应该可以解决这个问题。
[ 0] https://experienceleague.adobe.com/docs/experience-manager-64/administering/introduction/msm-sync.html?lang=zh-Hans#excluding-properties-and-node-types-from-synchronization