gpt4 book ai didi

java - 如何在 nuxeo IDE 中创建事件监听器

转载 作者:行者123 更新时间:2023-12-02 03:34:40 24 4
gpt4 key购买 nike

我想在 nuxeo IDE 中安排一个事件,但收到错误 java.lang.ClassCastException:

org.nuxeo.ecm.core.event.impl.EventContextImpl cannot be cast to org.nuxeo.ecm.core.event.impl.DocumentEventContext.

我的调度程序贡献是:

<?xml version="1.0"?>

<component name="org.nuxeo.sample.ScheduleCall" version="1.0">
<extension target="org.nuxeo.ecm.core.scheduler.SchedulerService"
point="schedule">
<schedule id="testschedule">
<username>Administrator</username>
<eventId>user_created</eventId>
<eventCategory>default</eventCategory>

<cronExpression>0 1 * * * ?</cronExpression>
</schedule>
</extension>

</component>

我的听众贡献是:

<component name="org.nuxeo.sample.listener.contrib.ScheduleListener">

<extension target="org.nuxeo.ecm.core.event.EventServiceComponent"
point="listener">

<listener name="schedulelistener" async="false" postCommit="true"
class="org.nuxeo.sample.ScheduleListener" priority="140">
<event>user_created</event>
</listener>
</extension>

</component>

我的监听器 java 类是:

/**
*
*/

package org.nuxeo.sample;

import org.nuxeo.ecm.core.event.EventListener;
import org.nuxeo.ecm.core.event.Event;





/**
* @author Parul.Puri01
*/


public class ScheduleListener implements EventListener {

public void handleEvent(Event event){
try{
if(event!=null && event.getName().equals("user_created")){
System.out.println("parul");
}
System.out.println("not an event");
}
catch (Exception e){
e.printStackTrace();

}


}

}

错误是:

java.lang.ClassCastException: org.nuxeo.ecm.core.event.impl.EventContextImpl cannot be cast to org.nuxeo.ecm.core.event.impl.DocumentEventContext
at org.nuxeo.ecm.user.center.profile.localeProvider.UserLocaleSelectorListener.handleEvent(UserLocaleSelectorListener.java:43)
at org.nuxeo.ecm.core.event.impl.EventServiceImpl.fireEvent(EventServiceImpl.java:200)
at org.nuxeo.ecm.core.scheduler.EventJob.execute(EventJob.java:119)
at org.nuxeo.ecm.core.scheduler.EventJob.execute(EventJob.java:65)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
2016-06-02 12:13:01,047 WARN [Nuxeo-Work-default-3] [org.nuxeo.ecm.platform.ec.notification.NotificationEventListener] Can not handle notification on a event that is not bound to a DocumentEventContext

请告诉我如何在 nuxeo IDE 中创建监听器扩展点。我将其创建为文档监听器。如何解决该错误?

最佳答案

user_created eventId 由 Nuxeo 平台在文档上下文中内部使用。

因此,您无法使用没有文档上下文的调度程序触发同一事件。

如果您想让示例正常工作,只需将 user_created 重命名为 my_user_created 或其他名称即可。

最好,

关于java - 如何在 nuxeo IDE 中创建事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37584526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com