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 EE Discussion :

ClassCastException en appelant une méthode d'un EJB3 [EJB3]


Sujet :

Java EE

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut ClassCastException en appelant une méthode d'un EJB3
    Bonjour.

    Je viens ici tout désespéré car je ne trouve rien nul part sur mon problème.

    Je travaille sur une application Java EE en utilisant les EJB3.
    Au niveau architecture, j'ai un ejb-jar avec un Session Bean qui gère des Entity Beans et un client dans un autre ejb-jar qui accède au Session Bean pour obtenir des infos sur les Entity Beans.

    Mon problème survient lorsque j'appelle une méthode du Session Bean qui me renvoit un objet contenant plusieurs informations (2 strings et 1 date).

    La classe de cet objet est définie dans les 2 ejb-jar mais j'obtiens une ClassCastException lorsque je récupère l'objet.

    Est-ce possible de se faire retourner un objet en appelant un EJB ?
    Est-ce correct de définir la classe dans les 2 ejb-jar ?
    Y a-t-il quelque chose que j'ai oublié de faire ?
    Quelqu'un saurait-il m'aider ?

    Merci.

    Laurent.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.

    Si tu définis une même classe dans 2 jars, même si elles sont exactement pareilles, elles seront considérées différentes par la JVM.

    Une solution serait de définir ton bean dans un troisième jar qui sera utilisé par les deux autres de d'enlever la déclaration de ce bean de ces deux jars.

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour la réponse.

    Effectivement, cela fonctionne en ajoutant un jar partagé.

    En revanche, j'ai une appli RCP qui accède au même Session Bean pour les mêmes raisons. Cette appli RCP est également packagée avec une copie de la classe incriminée et ne renvoie aucune exception.

    Je comprends donc que cela fonctionne pour l'appli RCP car elle est lancée dans une JVM différente et que cela ne fonctionnait pas dans mon cas car j'étais dans un même conteneur EJB et donc une même JVM.
    Ai-je raison ?

    Merci encore.

    Laurent.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui tu as bien compris.
    J'ai eu le même problème que toi, il y a quelque temps

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

Discussions similaires

  1. [EJB] Appeler une méthode sur un EJB
    Par c+cool dans le forum Java EE
    Réponses: 12
    Dernier message: 27/01/2006, 11h44
  2. [POO]Appelé une méthode d'une classe mère
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 14h44
  3. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  4. Appeler une méthode dynamiquement
    Par doof dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/01/2005, 23h15
  5. Comment l'appel à une méthode virtuelle....
    Par Blobette dans le forum C++
    Réponses: 7
    Dernier message: 07/12/2004, 13h55

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