2016-06-02 7 views
0

Ich möchte ein Ereignis in Nuxeo IDE planen, aber ich erhalte den Fehler java.lang.ClassCastException:Wie ein Ereignis-Listener in Nuxeo IDE machen

org.nuxeo.ecm.core.event.impl .EventContextImpl kann nicht in org.nuxeo.ecm.core.event.impl.DocumentEventContext umgewandelt werden.

Mein Planer Beitrag:

<?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> 

Mein Zuhörer Beitrag:

<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> 

für Zuhörer Meine Java-Klasse ist:

/** 
* 
*/ 

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(); 

     } 


    } 

} 

Der Fehler ist:

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 

Bitte lassen Sie mich wissen, wie die Zuhörer Erweiterungspunkt in Nuxeo IDE zu erstellen. Ich erstelle es als Dokument Listener. Wie kann ich den Fehler beheben?

Antwort

2

Die user_created eventId intern von der Nuxeo Plattform innerhalb eines Dokuments Kontext verwendet wird.

Sie können daher dieses Ereignis nicht mit einem Scheduler auslösen, der keinen Dokumentkontext hat.

Wenn Sie möchten, dass Ihre Probe arbeiten lassen, benennen Sie user_created in my_user_created oder was auch immer.

Best,

+0

hallo, habe ich versucht, dies aber den gleichen Fehler konfrontiert, können Sie mit dem Fehler helfen, wieder – Parul

+0

hallo, ich persönlich Ihre Probe getestet und es funktioniert gut für mich. Ihre cronExpression (0 1 * * *?) Bedeutet jede Stunde zur ersten Minute der Stunde **, z. 16h01, 17h01, 18h01, etc. ** was nicht mit dem Zeitstempel Ihres Logs übereinstimmt (** 2016-06-02 12: 13: 01.047 **) was mich zu der Annahme verleitet, dass der Stack nicht mit Ihrem Scheduler zusammenhängt etwas anderes. –

+0

Hallo, vielen Dank .. mein Nuxeo war nicht konfiguriert..Nun ist es so, dass dieser Fehler nicht bestehen bleibt..aber ich bin nicht in der Lage, eine Ausgabe zu bekommen..kann bitte geben Sie mir die Informationen, wenn Sie erstellen Der Scheduler als nuxeo-Komponente und der Listener als Dokument-Listener. Sehen Sie auch die Ausgabe auf Ihrem Eclipse-Fenster? Deine Hilfe wird geschätzt – Parul