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 :

ejb session bean classCastException Deserialization


Sujet :

Java EE

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut ejb session bean classCastException Deserialization
    Bonjour,

    Je veux développer un petit répertoire en utilisant un ejb session bean.

    j'ai une interface NewSessionRemote :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Remote
    public interface NewSessionRemote {
     
        public void addPerson(Personne unePersonne) throws Exception;
        public void updatePerson(Personne unePersonne) throws Exception;
        public void removePerson (Personne unePersonne)throws Exception;
        public void searchPerson(String name)throws Exception;
    }
    j'ai une classe implémentant cette interface :

    prenons le cas de l'ajout par exemple :

    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
    @Stateful
    public class NewSessionBean implements NewSessionRemote {
     
        ArrayList<Personne> list= new ArrayList<Personne>();
     
        public void addPerson(Personne unePersonne)throws Exception {
            try
            {
                list.add(unePersonne);
            }
            catch (UnsupportedOperationException ex)
            {
                ex.toString();
            }
        }
     
     
    }
    voilà à quoi ressemble ma classe personne :
    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
    public class Personne implements Serializable   {
     
     private static final long serialVersionUID = 42L;
     
        String nom;
        String prenom;
        String adresse;
        String ville;
        int cp;
        String numTel;
     
        // default constructor
        public Personne(){}
     
        public Personne (String pNom, String pPrenom, String pAdresse, String pVille, int pCp, String numTel){
            this.nom=pNom;
            this.prenom=pPrenom;
            this.adresse=pAdresse;
            this.ville=pVille;
            this.cp=pCp;
            this.numTel=numTel;
        }
     
        public String getNom(){
            return nom;
        }
        public void setNom(String pNom){
            this.nom=pNom;
        }
        public String getPrenom(){
            return prenom;
        }
        public void setPrenom(String pPrenom){
            this.prenom=pPrenom;
        }
        public String getAdresse(){
            return adresse;
        }
        public void setAdresse(String pAdresse){
            this.adresse=pAdresse;
        }
        public String getVille(){
            return ville;
        }
        public void setString(String pVil){
            ville=pVil;
        }
        public int getCp(){
            return cp;
        }
        public void setCp(int pCp){
            this.cp=pCp;
        }
        public String getNumTel (){
            return numTel;
        }
        public void setNumTel(String pNum){
            this.numTel=pNum;
        }
    }
    ensuite j'ai crée une petite ihm côté client pour invoquer l'ejb avec un bouton "ajouter" pour ajouter une personne

    voici le code du bouton :

    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
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
     
            Personne unePersonne=new Personne(jTextField2.getText(), jTextField3.getText(),
                    jTextField4.getText(), jTextField5.getText(), Integer.parseInt(jTextField6.getText()),jTextField7.getText());
            try {
     
                // proprietes de connexion
                Hashtable environment = new Hashtable();
                environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
                environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
                environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
     
                // initialisation du contexte
                InitialContext context = new InitialContext(environment);
     
                // récupération du contexte
                NewSessionRemote beanRemote =(NewSessionRemote) context.lookup("NewSessionBean/remote");
     
                try {
                    beanRemote.addPerson(unePersonne);
                    System.out.println("la personne est ajoutée");
     
                } catch (Exception ex) {
                    Logger.getLogger(Repertoire.class.getName()).log(Level.INFO, null, ex);
                }
                } catch (NamingException nEx) {
                    Logger.getLogger(Repertoire.class.getName()).log(Level.INFO, null, nEx);
                }
     
        }
    qd je déploie mon ejb j'ai l'erreur suivante :
    java.lang.RuntimeException: java.io.InvalidClassException: bo.Personne; class invalid for deserialization
    Je ne comprends pas d'où provient l'erreur et je débute avec les ejb j'en appelle donc à vos lumières

    merci d'avance

    bilou69

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    petite précision car je me suis mal exprimé le souci provient au moment ou je clique sur le bouton ajouter et non au deploiement de l'ejb.

    merci

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut Suite et fin
    J'ai trouvé le souci après quelques crises de nerfs ...
    J'utilisais des jars pour jboss 4.2.2 alors que je déployais mon projet projet sur JBoss 5.

    J'ai mis les bons jars et le miracle s'est produit

    merci à tous

    à très bientôt

    Bilou

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

Discussions similaires

  1. EJB Session Bean MySQL
    Par hamza.rezgui dans le forum NetBeans
    Réponses: 2
    Dernier message: 23/12/2011, 16h57
  2. [EJB] Session bean non instancié
    Par Erouan dans le forum Java EE
    Réponses: 13
    Dernier message: 24/08/2010, 18h08
  3. Réponses: 4
    Dernier message: 18/05/2010, 16h56
  4. [EJB Stateful] Fonctionnement des EJB Stateful Session Bean
    Par T`lash dans le forum Java EE
    Réponses: 3
    Dernier message: 15/04/2008, 02h10
  5. [Débutant] [lomboz] EJB Session
    Par VinceFromBcn dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/01/2005, 19h51

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