我想获取任何给定蓝色打印页面的实时复印页面列表。所以,如果我给出了一个页面路径,我应该能够列出所有的实时副本(如果有的话)。这可以通过任何API实现吗?
答案 0 :(得分:3)
资源(页面)的实时副本可以由官方API
获取您只需使用2 HOUR PARKING 7-6\+12
即可获得实时关系。
根据您使用的AEM版本以及BluePrint设置的复杂程度以及LiveCopy继承(和取消)的深度,此API可能会对性能产生影响。
实际上,它应该返回通过CQ蓝图管理器屏幕可见的相同数据。
答案 1 :(得分:0)
需要执行以下步骤
向pom.xml添加依赖项
<dependency>
<groupId>com.day.cq.wcm</groupId>
<artifactId>cq-msm-api</artifactId>
<version>5.7.2</version>
<scope>provided</scope>
</dependency>
添加两个引用
@Reference
private ResourceResolverFactory resolverFactory;
@Reference
LiveRelationshipManager liveRelManager;
在需要liveCopy列表的位置添加代码。
List<LiveCopy> liveCopyList = new ArrayList();
try {
ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);
String givenPageOrBlueprint = "/content/we-retail/ca/en/experience/climbing-in-the-massif-du-mont-blanc";
Resource res = resourceResolver.getResource(givenPageOrBlueprint);
RangeIterator rangeIterator = liveRelManager.getLiveRelationships(res,"",null);
while (rangeIterator.hasNext())
{
LiveRelationship liveCopy =(LiveRelationship) rangeIterator.next();
liveCopyList.add(liveCopy.getLiveCopy());
}
} catch (Exception e) {
e.printStackTrace();
}