Events AEM 6.3设置页面事件处理程序/侦听器

Events AEM 6.3设置页面事件处理程序/侦听器,events,listener,replication,aem,Events,Listener,Replication,Aem,我目前正在为aem上的页面创建和删除设置一个事件处理程序,然后调用我们的一个供应商API 我的工作一直基于我们已有的一个模块,该模块监听复制事件 到目前为止,我能够在我的模块上重现这种行为,并在复制时触发代码。但是,我只需要在页面发布和删除时调用API 我一直在寻找如何区分复制和页面删除和激活 到目前为止,AEM似乎将crx复制和页面发布处理为同一类型的事件“type=ACTIVATION” 如果我删除一个页面,它会将类型设置为“delete”,这样我就可以使用它来调用API,但是对于我丢失的页

我目前正在为aem上的页面创建和删除设置一个事件处理程序,然后调用我们的一个供应商API

我的工作一直基于我们已有的一个模块,该模块监听复制事件

到目前为止,我能够在我的模块上重现这种行为,并在复制时触发代码。但是,我只需要在页面发布和删除时调用API

我一直在寻找如何区分复制和页面删除和激活

到目前为止,AEM似乎将crx复制和页面发布处理为同一类型的事件“type=ACTIVATION”

如果我删除一个页面,它会将类型设置为“delete”,这样我就可以使用它来调用API,但是对于我丢失的页面发布,正如我所提到的,AEM看起来像是以相同的类型处理CRX复制和页面发布

经过一些研究,我找到了PageEvent API,并尝试设置一个页面事件侦听器,但在发布或删除页面时不会触发它,因此我不确定我尝试做的是否可能,或者我的组件是否位于项目的错误部分,以侦听页面事件


感谢您,下面的代码可以很好地检测页面删除事件:

@组件(
服务={
EventHandler.class,
JobConsumer.class
},
立即=真,
configurationPolicy=configurationPolicy.OPTIONAL,
属性={
“event.topics=“+PageEvent.event\u主题,
JobConsumer.PROPERTY_主题+“=”+“aem/custom/event”
}
)
公共类CustomEventHandler实现EventHandler,JobConsumer{
@凌驾
公共无效handleEvent(事件){
PageEvent PageEvent=PageEvent.fromEvent(事件);
映射属性=新的HashMap();
properties.put(“pageEvent”,pageEvent);
jobManager.addJob(“aem/custom/event”,属性);
}
@凌驾
公共职务结果处理(职务){
PageEvent PageEvent=(PageEvent)job.getProperty(“PageEvent”);
试一试{
if(pageEvent!=null&&pageEvent.isLocal()){
迭代器修改迭代器=pageEvent.getModifications();
while(modificationsIterator.hasNext()){
PageModification=modificationsIterator.next();
if(PageModification.ModificationType.DELETED.equals(modification.getType())){
//你的逻辑
}
}
}
}捕获(例外e){
错误(“错误:”,e);
}
返回JobResult.OK;
}
}

你好,谢谢你的回答。我可以知道消费者的工作是什么吗?提前感谢:)另外,你使用的是什么版本的依赖关系?你可以在这里获得关于工作消费者的更多详细信息:uber jar,6.4、6.3或6.2版,任何东西都可以。是的,这是预期的效果。谢谢你的帮助:)