Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1337 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [J2EE] un daemon sur un serveur j2EE ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[J2EE] un daemon sur un serveur j2EE ??

n°1858640
ffluff
Challenge Everything
Posté le 06-03-2009 à 20:21:39  profilanswer
 

Bonjour,
 
J'ai une application qui va chercher des données chez un client, traite ces données, et renvois le resultat.
Cette application doit tourner en boucle "à vie" (toutes les X secondes demande des nouvelles données), et fait un traitement spécial en fonction du type de la données.
L'ajout de nouveau type de données implique un nouveau traitement.
 
 
N'y connaissant rien en J2EE, pour moi un serveur J2EE c'est comme une "boite à outils", donc je pourrais y mettre toutes mes algos de traitement des données, et quand y a un nouveau type de données deployer le nouvel outil.
De cette façon, le client du serveur J2EE serait en fait un daemon qui recupere les données et la balance au bon "outil".
 
 
Mais est ce qu'un serveur J2EE est capable de prendre en charge ce type de client (daemon) ?


Message édité par ffluff le 06-03-2009 à 20:23:43
mood
Publicité
Posté le 06-03-2009 à 20:21:39  profilanswer
 

n°1858649
el muchach​o
Comfortably Numb
Posté le 06-03-2009 à 20:56:11  profilanswer
 
n°1858760
ffluff
Challenge Everything
Posté le 07-03-2009 à 14:28:25  profilanswer
 

Merci ca semble être ce que je cherche
 
Je suis entrain d'essayer de voir comment ca marche pour ca j'utilise NetBeans 6.5 et GlassFish v2.
 
Le serveur demarre bien, j'ai donc creer sous netbeans un nouveau projet "Enterprise Project"
 
Et j'ai cree mon Session EJB :
 

Code :
  1. // Test1Bean.class
  2. package test;
  3. import javax.ejb.Stateless;
  4. @Stateless
  5. public class Test1Bean implements Test1Remote {
  6.     public void getMessage() {
  7.         System.out.println("TEST!!!!!!!!!!!" );
  8.     }
  9. }


Code :
  1. // Test1Remote.class
  2. package test;
  3. import javax.ejb.Remote;
  4. @Remote
  5. public interface Test1Remote {
  6.     void getMessage();   
  7. }


Puis une web application pour y mettre mon servlet
 

Code :
  1. //QuartzServlet.class
  2. package servlet;
  3. import java.io.IOException;
  4. import javax.servlet.GenericServlet;
  5. import javax.servlet.ServletConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.ServletRequest;
  8. import javax.servlet.ServletResponse;
  9. import org.quartz.CronTrigger;
  10. import org.quartz.JobDetail;
  11. import org.quartz.Scheduler;
  12. import org.quartz.impl.StdSchedulerFactory;
  13. import org.quartz.jobs.ee.ejb.EJBInvokerJob;
  14. public class QuartzServlet extends GenericServlet {
  15.     @Override
  16.     public void init(ServletConfig config) throws ServletException {
  17.         super.init(config);
  18.         System.out.println("Scheduling Job .." );
  19.         JobDetail jd = new JobDetail("Test Quartz", "My Test Job", EJBInvokerJob.class);
  20.         jd.getJobDataMap().put ("ejb","java:comp/env/ejb/Test1" );
  21.         jd.getJobDataMap().put("method","getMessage" );
  22.         Object[] jdArgs = new Object[0];
  23.         jd.getJobDataMap().put("args", jdArgs);
  24.         CronTrigger cronTrigger = new CronTrigger("Test Quartz", "Test Quartz" );
  25.         try {
  26.             String cronExpr = null;
  27.             cronExpr = getInitParameter("cronExpr" );
  28.             System.out.println(cronExpr);
  29.             cronTrigger.setCronExpression(cronExpr);
  30.             Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
  31.             sched.scheduleJob(jd, cronTrigger);
  32.             System.out.println("Job scheduled now .." );
  33.         } catch (Exception e) {
  34.             e.printStackTrace();
  35.         }
  36.     }
  37.     @Override
  38.     public void service(ServletRequest arg0, ServletResponse arg1)
  39.             throws ServletException, IOException {
  40.     }
  41.     @Override
  42.     public String getServletInfo() {
  43.         return "Short description";
  44.     }
  45. }


Code :
  1. // web.xml
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ [...] &#034;&gt;
  4.     <display-name>Quartz Initializer Servlet</display-name>
  5.     <servlet>
  6.         <servlet-name>QuartzInitializer</servlet-name>
  7.         <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
  8.         <load-on-startup>1</load-on-startup>
  9.     </servlet>
  10.     <servlet>
  11.         <servlet-name>QuartzServlet</servlet-name>
  12.         <servlet-class>servlet.QuartzServlet</servlet-class>
  13.         <init-param>
  14.             <param-name>cronExpr</param-name>
  15.             <param-value>* * * * * ?</param-value>
  16.         </init-param>
  17.         <load-on-startup>2</load-on-startup>
  18.     </servlet>
  19.     <servlet-mapping>
  20.         <servlet-name>QuartzInitializer</servlet-name>
  21.         <url-pattern>/NewServlet</url-pattern>
  22.     </servlet-mapping>
  23.    
  24.     <session-config>
  25.         <session-timeout>
  26.             30
  27.         </session-timeout>
  28.     </session-config>
  29.     <welcome-file-list>
  30.         <welcome-file>index.jsp</welcome-file>
  31.     </welcome-file-list>
  32.     <ejb-ref>
  33.         <ejb-ref-name>ejb/Test1</ejb-ref-name>
  34.         <ejb-ref-type>Session</ejb-ref-type>
  35.         <home>test.Test1Bean</home>
  36.         <remote>test.Test1Remote</remote>
  37.         <ejb-link>Test1Bean</ejb-link>
  38.     </ejb-ref>
  39. </web-app>


Le problème c'est que quand je deploy mon app, le "cron" se lance bien mais dans les logs il y a :

Code :
  1. Job My Test Job.Test Quartz threw an unhandled Exception:
  2. java.lang.ClassCastException
  3.         at com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:258)
  4.         at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
  5.         at org.quartz.jobs.ee.ejb.EJBInvokerJob.execute(EJBInvokerJob.java:166)
  6.         at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
  7.         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
  8. Caused by: java.lang.ClassCastException: test._Test1Remote_Wrapper
  9.         at com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:241)
  10.         ... 4 more
  11. Job (My Test Job.Test Quartz threw an exception.
  12. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.ClassCastException]
  13.         at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
  14.         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
  15. Caused by: java.lang.ClassCastException
  16.         at com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:258)
  17.         at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
  18.         at org.quartz.jobs.ee.ejb.EJBInvokerJob.execute(EJBInvokerJob.java:166)
  19.         at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
  20.         ... 1 more
  21. Caused by: java.lang.ClassCastException: test._Test1Remote_Wrapper
  22.         at com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:241)
  23.         ... 4 more


Quelqu'un pourrait me dire ou j'ai foirée ?

n°1858927
el muchach​o
Comfortably Numb
Posté le 08-03-2009 à 09:22:48  profilanswer
 

Jamais utilise Quartz, mais as-tu essaye leurs exemples/bien lu leur doc ?


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [J2EE] un daemon sur un serveur j2EE ??

 

Sujets relatifs
[C#] Smtp et liste de diffusion Serveur Exchangeprobleme connexion avec serveur SMTP via une servlet
Comment enregistrer des données coté serveur ?[SQL SERVEUR] porbleme de concatenation
#2003 le serveur ne répond pas "phpmyadmin'"Copie de fichier vers autre serveur
version différente entre bibliothèque et serveur ?[Resolu] FileReference et reponse du serveur...
lancemment de serveurErreur sur le serveur mais execution impec en local
Plus de sujets relatifs à : [J2EE] un daemon sur un serveur j2EE ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR