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

Tomcat et TomEE Java Discussion :

requete Hibernate OK mais l'objet recu est incorrect


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Par défaut requete Hibernate OK mais l'objet recu est incorrect
    Bonjour,
    j'espère que j'arriverais à expliquer mon pb clairemetn:

    j'effectue une requête à travers un EJBObject:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<DemandIndex> result = demandeRemote.findAllIndexByDate(beginDate, endDate, form.getSelTag());
    Tomcat passe la demande "remote" au serveur JONAS et celui-ci exécute la requête afin de récupèrer la liste d'objets demandés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public interface DemandeRemote extends EJBObject {
    (...)
    public List<DemandeIndex> findAllIndexByDate(Date beginDate, Date endDate, String selTag) throws RemoteException;
    }
    Ceci est la méthode de l'EJB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public List<DemandeIndex> findAllIndexByDate(Date beginDate, Date endDate, String selTag)throws RemoteException{
    logger.info("[DemandeBean] findAllIndexByDate() : ");
    List<DemandIndex> result;
    try {
    DemandeIndexDao demandeIndexDao = new DemandeIndexDao();
    result = demandeIndexDao.findAllIndexByDate(beginDate, endDate, selTag);
    } catch (CcipHibernateException e) {
    e.printStackTrace();
    logger.error("[DemandeBean] findAllIndexByDate() : " + e.getMessage());
    throw new RemoteException(e.getMessage());
    }
    return result;
    }
    le DemandeIndexDao effectue la requête hibernate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public List<DemandIndex> findAllIndexByDate(Date beginDate, Date endDate, String selTag) throws CcipHibernateException {
    Criteria criteria = session.createCriteria(DemandIndex.class);
     
    (...)
     
    criteria.add(Restrictions.lt(DemandIndex.PROP_DATE, cal.getTime()));
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
     
    (..)
     
    results = (List<DemandeIndex>) criteria.list();
     
    return results;

    Celle-ci fonctionne puisque elle retourne une liste (avec un objet dans le ca présent) correcte.
    Par contre, Tomcat de son côté recoit une liste avec un objet (jusque la ca va) mais ses champs sont à null (ou 0 pour l'id de l'objet)

    càd:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<DemandIndex> result = demandeRemote.findAllIndexByDate(beginDate, endDate, form.getSelTag());
    --> result (1 demandIndex mais les chps de demandeIndex non initialisés/null)

    De plus, j'ai une erreur dans Tomcat du type:

    CAROL Error:can not load interceptors
    java.lang.ClassCastException: org.objectweb.jotm.jta.rmi.JTAInterceptorInitializer
    at org.objectweb.carol.rmi.jrmp.interceptor.JInterceptorStore.setRemoteInterceptors(JInterceptorStore.java:167)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRef.readExternal(JUnicastRef.java:322)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRef.readExternal(JUnicastRef.java:292)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at java.rmi.server.RemoteObject.readObject(RemoteObject.java:413)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:290)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRef.performRemoteCall(JUnicastRef.java:202)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRef.invoke(JUnicastRef.java:158)
    at org.objectweb.jonas_gen.fr.experian.ccip.core.ejb.demande.JOnASDemandeBean_1980334707Home_Stub.create(Unknown Source)
    at fr.experian.ccip.web.demande.index.action.DemandeIndexAction.locate(DemandeIndexAction.java:179)
    at fr.experian.ccip.web.demande.index.action.DemandeIndexAction.rechercheList(DemandeIndexAction.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:266)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:167)
    at fr.experian.ccip.util.web.CcipDispatchAction.execute(CcipDispatchAction.java:67)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)

    Pourtant cette erreur ne semble pas avoir de conséquences sur les autres requêtes du même type de l'application.

    Qqun aurait une idée?

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Par défaut Résolu
    J'ai trouvé le problème,

    En fait, j'avais deuix problèmes que je pensais liés.

    Les objets que je transmets (demandIndex) sont marqués comme serializable, mais pas la classe de base . Du coup, cela fonctionne.

    Pour l'exception levé, il s'agissait d'un conflit de librairies: j'avais des librairies présentes sur mon tomcat shared et aussi dans le repertoire de la webapp.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/12/2009, 09h10
  2. VBA/xl/97 Msg L'objet n'est pas source d'événemt automation
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2005, 12h48
  3. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 01h48
  4. Comment tester qu'un objet String est bien initialisé
    Par Jones dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/09/2004, 11h29

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