IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Scheduler joblistener


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 16
    Par défaut Scheduler joblistener
    Bonjour Tout le monde,

    Voilé je suis débutante avec scheduler et mon problème est le suivant:

    j'aimerai scheduler un batch et surtout pouvoir traiter la politique de reprise, c'est à dire quand le job echou pouvoir relancer ce dernier autant de fois qui lui est permi, et pour ce faire j'ai lu des cours qui conseillé d'introduire un jobListener chose que j'ai faite mais sa n'a rien donné.
    Voici ce que j'ai fait:

    Tout d'abord j'ai introduit cette ligne dans le fichier xml de scheduler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!-- *************************************************************** -->
     	<!-- Declare a job listener that will take care of job retries, etc. -->
     	<!-- *************************************************************** -->
     
     <bean id="myJobListener" class="org.quartz.JobListener">
             <property name="name" value="myJobListener"/>
             <property name="jobDetail" ref="myJobListener"></property>
         </bean>
    ensuite j'ai créer la callse du joblistener qui est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     package com.scheduler.listener;
     
     import org.quartz.JobDetail;
     import org.quartz.JobExecutionContext;
     import org.quartz.JobExecutionException;
     import org.quartz.JobListener;
     import org.springframework.batch.core.JobExecution;
     
     public class UnJobListener implements JobListener {
     	public static final String LISTENER_NAME = "dummyJobListenerName";
     
     	public UnJobListener() {
     		// TODO Auto-generated constructor stub
     	}
     
     	@Override
     	public String getName() {
     		// TODO Auto-generated method stub
     		return LISTENER_NAME;
     	}
     
     	@Override
     	// Run this if job is about to be executed.
     	public void jobToBeExecuted(JobExecutionContext context) {
     		// TODO Auto-generated method stub
     		String jobName = context.getJobDetail().getKey().toString();
     		System.out.println("jobToBeExecuted");
     		System.out.println("Job : " + jobName + " is going to start...");
     		 //JobDetail jobDetail = context.getJobDetail();
     //         MyJobDetail myJobDetail = (MyJobDetail) jobDetail;          
     //         jobDetail.getJobDataMap().put("MessageAdded", myJobDetail.getMyMessage());
     
     
     
     	}
     
     
     	@Override
     	public void jobExecutionVetoed(JobExecutionContext context) {
     		// TODO Auto-generated method stub
            System.out.println("jobExecutionVetoed");
     	}
     
     	@Override
     	public void jobWasExecuted(JobExecutionContext context,
     			JobExecutionException jobException) {
     		// TODO Auto-generated method stub
     		System.out.println("jobWasExecuted");
     
     		String jobName = context.getJobDetail().getKey().toString();
     		System.out.println("Job : " + jobName + " is finished...");
     
     		if (!jobException.getMessage().equals("")) {
     			System.out.println("Exception thrown by: " + jobName
     				+ " Exception: " + jobException.getMessage());
     		}
     	}
     
     }
    mais celà n'a pas marché et sa me génère celà:
    INFO: Closing JPA EntityManagerFactory for persistence unit 'NCAKernel'
    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myJobListener' defined in class path resource [schedulerAppContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.quartz.JobListener]: Specified class is an interface
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:943)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.prosodie.nca.scheduler.StandaloneScheduler.main(StandaloneScheduler.java:46)
    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.quartz.JobListener]: Specified class is an interface
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:56)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)
    ... 13 more
    voilà si quelqu'un sait comment faire, a une idée ou autre sa m'aiderai énormément, s'il vous plait j'en ai besoin.

    Merci à vous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 16
    Par défaut Schedulet joblistener
    j'ai corrigé une erreure que j'ai comise concernanat la class où j'ai mis une interface (résultat d'un copier/coller).
    Maintenanat j'ai une autre erreure qui est sachant que j'ai modifié ainsi :

    <bean id="myJobListener" class="com.prosodie.nca.scheduler.MyJobListener">
    <property name="name" value="UnJobListener"/>
    </bean>
    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accesIhmDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.prosodie.nca.scheduler.MyJobListener] for bean with name 'myJobListener' defined in class path resource [schedulerAppContext.xml]; nested exception is java.lang.ClassNotFoundException: com.prosodie.nca.scheduler.MyJobListener
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:342)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.prosodie.nca.scheduler.StandaloneScheduler.main(StandaloneScheduler.java:46)
    Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.prosodie.nca.scheduler.MyJobListener] for bean with name 'myJobListener' defined in class path resource [schedulerAppContext.xml]; nested exception is java.lang.ClassNotFoundException: com.prosodie.nca.scheduler.MyJobListener
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1262)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:317)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:298)
    at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:142)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:527)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:496)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:657)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:630)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:339)
    ... 13 more
    Caused by: java.lang.ClassNotFoundException: com.prosodie.nca.scheduler.MyJobListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)
    ... 25 more
    s'il vous plait comment je peux utiliser cette classe listener et comment l'ajouter dans mon fichier xml ??????

Discussions similaires

  1. scheduler mysql
    Par Alextk dans le forum Administration
    Réponses: 7
    Dernier message: 18/05/2006, 15h43
  2. Quartz: impossible d'instancier le scheduler!
    Par lOurs4816 dans le forum API standards et tierces
    Réponses: 28
    Dernier message: 20/04/2006, 17h11
  3. [Stratégie][scheduler] Ecouter un répertoire
    Par FenderStrato dans le forum Général Java
    Réponses: 10
    Dernier message: 08/03/2006, 13h43
  4. Scheduled Task
    Par wiglaft dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 22/12/2005, 04h49
  5. DTS package scheduling problems
    Par jhaythem dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/08/2005, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo