2016-06-02 3 views
0

Je veux planifier un événement dans Nuxeo IDE mais je reçois le java.lang.ClassCastException d'erreur:Comment faire un écouteur d'événement dans Nuxeo IDE

org.nuxeo.ecm.core.event.impl .EventContextImpl ne peut pas être converti en org.nuxeo.ecm.core.event.impl.DocumentEventContext.

Ma contribution planificateur est:

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

Ma contribution auditeur est:

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

Ma classe java pour l'auditeur est:

/** 
* 
*/ 

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

     } 


    } 

} 

L'erreur est:

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 

S'il vous plaît laissez-moi savoir comment créer le point d'extension de l'écouteur dans Nuxeo IDE. Je le crée en tant qu'écouteur de document. Comment résoudre l'erreur?

Répondre

2

Le user_created eventId est utilisé en interne par la plate-forme Nuxeo dans un contexte de document.

Vous ne pouvez donc pas déclencher ce même événement avec un planificateur qui n'a pas de contexte de document.

Si vous voulez faire votre travail d'échantillon, seulement renommer user_created dans my_user_created ou autre chose.

Best,

+0

Salut, j'ai essayé cela, mais face à la même erreur, peut vous aider avec l'erreur – Parul

+0

Salut à nouveau, j'ai personnellement testé votre échantillon et il fonctionne très bien pour moi. Votre cronExpression (0 1 * * *?) Signifie toutes les heures à la première minute de l'heure ** par ex. 16h01, 17h01, 18h01, etc. ** qui ne correspond pas à l'horodatage de votre journal (** 2016-06-02 12: 13: 01,047 **) ce qui me conduit à penser que la pile n'est pas liée à votre planificateur mais autre chose. –

+0

Salut, merci beaucoup .. mon nuxeo n'a pas été configuré .. maintenant c'est fait, donc cette erreur ne persiste pas .. mais je suis incapable d'obtenir une sortie.Pouvez-vous s'il vous plaît me fournir les informations si vous créez le programmateur comme composant nuxeo et l'écouteur comme écouteur de document .. voyez-vous aussi la sortie sur votre fenêtre eclipse? Votre aide est appréciée – Parul