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

JOnAS Java Discussion :

Erreur de pool avec EJB3 et quartz sous JoNAS


Sujet :

JOnAS Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut Erreur de pool avec EJB3 et quartz sous JoNAS
    Bonjour ,
    j essais de réaliser des job qui se lance au démarrage du serveur Jonas.
    En premier temps je me suis penché vers Quartz Scheduler. j'ai testé en java dur (un main et vas y) ça marchait. j'ai essayé dans un ejb Startup ça marche pas avec l'erreur Thread pool not specified. sachant que je l'ai bien spécifié dans le quartz.properties.
    quartz.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    org.quartz.scheduler.instanceName = MyScheduler
    org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount = 3
    org.quartz.threadPool.threadPriority: 5
    org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
    Après , j'ai essayé les Schedule de l'EJB et non du Quartz, j obtiens cette erreur:
    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
    2011-12-06 09:45:56,203 : SessionFactory.createPoolItem : Unable to perform postconstruct on a new instance of the class 'xxx..job.Starter'
    java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ejb/ScheduleExpression
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClassCond(Unknown Source)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$000(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 org.ow2.easybeans.loader.EasyBeansClassLoader.findClass(EasyBeansClassLoader.java:127)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at org.ow2.easybeans.loader.EasyBeansClassLoader.loadClass(EasyBeansClassLoader.java:197)
            at xxxx.xxx.job.Starter.startup(Starter.java:32)
    La ligne 32 du code correspond à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ScheduleExpression scheduleExp = new ScheduleExpression().second("*/2").minute("*").hour("*");
    Voici tout le code de la classe EJB qui comprend le schedule:
    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
     
    package xxx.job;
    import java.util.logging.Logger;
     
    import javax.annotation.PostConstruct;
    import javax.annotation.Resource;
    import javax.ejb.ScheduleExpression;
    import javax.ejb.Singleton;
    import javax.ejb.Startup;
    import javax.ejb.Timeout;
    import javax.ejb.Timer;
    import javax.ejb.TimerService;
     
     
    /**
     * Session Bean implementation class Starter
     */
    @Singleton
    @Startup
    public class Starter {
     
        /** Logger. */
        private static final transient Logger LOGGER = Logger.getLogger("Startup");
     
        @Resource
        TimerService timerService;
     
        @PostConstruct
        private void startup() {
           // LOGGER.debug("END");
            System.out.println("STARTED 1");
            ScheduleExpression scheduleExp = new ScheduleExpression().second("*/2").minute("*").hour("*");
              Timer timer = timerService.createCalendarTimer(scheduleExp);
     
        }
     
        @Timeout
        public void executerTraitement(Timer timer) {
            System.out.println("FAIT TON JOB !");
         }
    }
    Je suis sur JoNas. et je veux lancer des job au démarrage. c'est mon but

    Merci pour l'aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Je tiens juste à préciser que ça marche sur Jonas. que ce soit avec les Schedule d'EJB ou de Quartz.

  3. #3
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    En fait, tu utilises des APIs qui proviennent de EJB 3.1.
    Ce n'est pas encore implémenté dans EasyBeans/JOnAS.

    Utilise l'API 3.0 et ca marchera mieux

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Bonjour, kalysto
    Merci pour tes réponse

    Dans mon dernier message je voulais dire que ça marchait sous JBoss. et non sous JOnas.

    Bref, j'ai essayé avec la version 5.2.2 de jOnas (archive dezippé et non l'installeur) et ça fonctionne. je ne sais pas pourquoi . pourtant jai rien configuré dans la version d'avant. et rien dans la nouvelle.

  5. #5
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    C'est simplement qu'entre ces 2 versions, nous avons implémenté les fonctionnalités manquantes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2014, 10h10
  2. Pb avec Metro Web Services sous JOnAS
    Par jpminetti dans le forum JOnAS
    Réponses: 2
    Dernier message: 16/12/2009, 17h00
  3. deployer un projet java avec ejb3 et jboss sous eclipse
    Par flamant dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/02/2009, 08h48
  4. Réponses: 3
    Dernier message: 31/08/2006, 11h59
  5. [Servlet]Erreur tomcat avec ServletContextListener et Quartz
    Par K-Kaï dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 01/06/2006, 11h44

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