Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem 如何在cq5工作流中以编程方式激活页面_Aem - Fatal编程技术网

Aem 如何在cq5工作流中以编程方式激活页面

Aem 如何在cq5工作流中以编程方式激活页面,aem,Aem,我正在尝试从代码激活一些页面。我已经制定了一个工作流,每当有一些内容在其他页面中被修改时,它就会修改一个页面,这些页面引用了这个页面。我试图通过设置激活属性来实现这一点,如: parentpage.setProperty("cq:lastModified", Calendar.getInstance()); parentpage.setProperty("cq:lastModifiedBy", session.getUserID()); 尽管每次都会设置此属性。但在发布实例中没有激活。我们如何

我正在尝试从代码激活一些页面。我已经制定了一个工作流,每当有一些内容在其他页面中被修改时,它就会修改一个页面,这些页面引用了这个页面。我试图通过设置激活属性来实现这一点,如:

parentpage.setProperty("cq:lastModified", Calendar.getInstance());
parentpage.setProperty("cq:lastModifiedBy", session.getUserID());
尽管每次都会设置此属性。但在发布实例中没有激活。我们如何在自定义工作流本身中激活编程联盟

使用OSGi服务:

@Component
public class MyComponent {

    @Reference
    private Replicator replicator;

    private void activatePage(Session session) {
    //...
        replicator.replicate(session, ReplicationActionType.ACTIVATE, pathToPage);
    //...
    }
}

您不需要设置任何属性。

如果您没有组件,则可以将服务作为-

Replicator replicator = getSling().getService(Replicator.class);

以前我也尝试过使用这段代码,但我一直遇到空指针异常。您能帮我一下吗。@Tomek RekawekI很乐意帮助您,但您必须编写更多详细信息。也许可以修改这个问题,跳过类代码和NPE堆栈跟踪。你从哪里获得复制器本身?新的ReplicatorImpl()并使用它运行?Replicator是一个OSGi服务,因此假设MyComponent也是一个OSGi组件,您可以使用
@Reference
注入
Replicator