AEM 推出配置不适用于从代码触发的 Live Copy 流程蓝图
AEM rollout configuration not working for blueprint to live copy flow triggered from code
我有一个带有蓝图和 Live Copy 的设置,但我遇到了一些奇怪的行为。
例1:
- 使用 UI 编辑页面(蓝图)的标题 -> 标题也会在 Live Copy 中设置
例二:
- 使用代码编辑页面(蓝图)的标题 -> 标题在蓝图中设置但没有在实时副本中设置
代码:
Session session = resourceResolver.adaptTo(Session.class);
Resource brandPageResource = resourceResolver.getResource("/content/platform-blueprints/company/nl/brands/439");
Page brandPage = brandPageResource.adaptTo(Page.class);
Resource brandPageContentResource = brandPage.getContentResource();
Node brandPageContentNode = brandPageContentResource.adaptTo(Node.class);
try {
brandPageContentNode.setProperty(JCR_TITLE, "NEW-TITLE-FROM-ENDPOINT");
} catch (RepositoryException e) {
LOG.error("Error initializing components", e.getMessage(), e);
}
session.save();
有人知道为什么会这样吗?我该如何解决?
当您更改节点的 属性 时,周围的页面将不会在其 cq:lastModified 属性 上获得更新,并且该页面不会在 [=20= 中标记为已更改] 还有。
您可以使用 PageManager.touch() 来更新页面的 cq:lastModified 和 cq:lastModifiedBy 属性。
使用 Resources 而不是 Nodes 也可以解决这个问题 - 但我不确定那个。
我有一个带有蓝图和 Live Copy 的设置,但我遇到了一些奇怪的行为。
例1:
- 使用 UI 编辑页面(蓝图)的标题 -> 标题也会在 Live Copy 中设置
例二:
- 使用代码编辑页面(蓝图)的标题 -> 标题在蓝图中设置但没有在实时副本中设置
代码:
Session session = resourceResolver.adaptTo(Session.class);
Resource brandPageResource = resourceResolver.getResource("/content/platform-blueprints/company/nl/brands/439");
Page brandPage = brandPageResource.adaptTo(Page.class);
Resource brandPageContentResource = brandPage.getContentResource();
Node brandPageContentNode = brandPageContentResource.adaptTo(Node.class);
try {
brandPageContentNode.setProperty(JCR_TITLE, "NEW-TITLE-FROM-ENDPOINT");
} catch (RepositoryException e) {
LOG.error("Error initializing components", e.getMessage(), e);
}
session.save();
有人知道为什么会这样吗?我该如何解决?
当您更改节点的 属性 时,周围的页面将不会在其 cq:lastModified 属性 上获得更新,并且该页面不会在 [=20= 中标记为已更改] 还有。
您可以使用 PageManager.touch() 来更新页面的 cq:lastModified 和 cq:lastModifiedBy 属性。
使用 Resources 而不是 Nodes 也可以解决这个问题 - 但我不确定那个。