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 :

[Jonas] Impossible de déployer une Entity Bean CMP2


Sujet :

JOnAS Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Jonas] Impossible de déployer une Entity Bean CMP2
    Bonjour à tous.

    Je débute depuis peu avec les EJB.
    Les Session Bean ne m'ont pas posé trop de problème en revanche j'ai toutes les peines du monde à faire touner une Entity Bean CMP2.

    Je travaille sous Eclipse avec le plugin JOPE.

    J'ai bien réussi à générer le jar de l'Entity Bean mais lorsque je tente de la déployer dans Jonas j'obtiens l'erreur suivante:

    java.lang.Exception: Cannot create Container:
    javax.ejb.EJBException: Impossible to instanciate the entity factory: jorm.rdb.hsql.EtudiantsMapping; nested exception is: java.lang.ClassNotFoundException: jorm.rdb.hsql.EtudiantsMapping

    Comme vous pouvez le voir je travaille avec hsqldb. Mon HSQL1.properties et jonas.properties sont je pense corrects:

    pour le premier j'ai:
    datasource.name jdbc_1
    datasource.url jdbc:hsqldb:hsql://localhost/db_jonas
    datasource.classname org.hsqldb.jdbcDriver
    datasource.username jonas
    datasource.password jonas
    datasource.mapper rdb.hsql

    et dans le jonas.properties:
    jonas.service.dbm.datasources HSQL1

    Dans le build.properties j'ai bien:
    mapper.names=rdb.hsql

    J'ai egalement mis (comme conseillé sur certain forums...) hsqldb.jar dans %JONAS_ROOT%\lib\ext

    Je ne sais plus trop quoi faire et je suis convaincu qu'il s'agit d'une erreur de débutant

    Je met aussi mon code pour que vous ayez tous les éléments.

    Merci d'avance pour vos précieux éclaircissements.

    -----------------------------------------------------------------------------------
    La remote interface

    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
     
    package etudiant;
     
    import java.rmi.RemoteException;
    import javax.ejb.EJBObject;
     
    /**
     * Etudiant remote interface
     */
    public interface Etudiant extends EJBObject {
        public String getLogin() throws RemoteException;
        public void setLogin(String login) throws RemoteException;
     
        public String getNom() throws RemoteException;
        public void setNom(String nom) throws RemoteException;
     
        public String getPrenom() throws RemoteException;
        public void setPrenom(String prenom) throws RemoteException;
     
        public int getInscrit() throws RemoteException;
        public void setInscrit(int inscrit) throws RemoteException;
    }
    -------------------------------------------------------------------------------
    l'interface home

    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
     
    package etudiant;
     
    import java.rmi.RemoteException;
    import java.util.Collection;
    import javax.ejb.CreateException;
    import javax.ejb.EJBHome;
    import javax.ejb.FinderException;
     
     
    public interface EtudiantHome extends EJBHome {
        Etudiant create(String login, String nom, String prenom, int inscrit) throws CreateException, RemoteException;
        Etudiant findByPrimaryKey(String login) throws FinderException, RemoteException;
        Collection findAll() throws FinderException, RemoteException;
    }
    -------------------------------------------------------------------------------------
    L'implémentation

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    package etudiant;
     
    //import java.rmi.RemoteException;
     
     
    public abstract class EtudiantEJB implements javax.ejb.EntityBean {
     
        javax.ejb.EntityContext ejbContext;
     
     
        public java.lang.String ejbCreate(String login, String nom, String prenom, int inscrit) throws javax.ejb.CreateException{
     
        	//Initialisation des attributs de la Bean
        	setLogin(login);
        	setNom(nom);
        	setPrenom(prenom);
        	setInscrit(inscrit);
            return null;
        }
     
        public void ejbPostCreate(String login, String nom, String prenom, int inscrit) {
        }
     
        // ------------------------------------------------------------------
        // Persistent fields (gérés par les methodes abstract)
        // ------------------------------------------------------------------
     
        public abstract String getLogin();
        public abstract void setLogin(String login);
     
        public abstract String getNom();
        public abstract void setNom(String nom);
     
        public abstract String getPrenom();
        public abstract void setPrenom(String prenom);
     
        public abstract int getInscrit();
        public abstract void setInscrit(int inscrit);
     
        // ------------------------------------------------------------------
        // Standard call back methods
        // ------------------------------------------------------------------
     
     
        public void setEntityContext(javax.ejb.EntityContext ctx) {
            ejbContext = ctx;
        }
     
     
        public void unsetEntityContext() {
            ejbContext = null;
        }
     
        public void ejbRemove() throws javax.ejb.RemoveException {
        }
     
     
        public void ejbLoad() {
        }
     
     
        public void ejbStore() {
        }
     
     
        public void ejbPassivate() {
        }
     
     
        public void ejbActivate() {
        }    
     
    }
    ---------------------------------------------------------------------------
    Le fichier de déploiement

    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
    61
    62
    63
     
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <!-- Velocity tempate: $Id: ejb-jar.vm,v 1.8 2005/08/10 16:24:21 el-vadimo Exp $ -->
     
    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
    		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    		 http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
    		 version="2.1">
     
      <description>Describe here the content of this file</description>
      <display-name>Etudiant</display-name>
     
      <enterprise-beans>
     
    	<entity>
    	  <description>Describe here the entity bean Etudiant</description>
          <ejb-name>EtudiantEJB</ejb-name>
          <home>etudiant.EtudiantHome</home>
          <remote>etudiant.Etudiant</remote>
          <ejb-class>etudiant.EtudiantEJB</ejb-class>
     
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.String</prim-key-class>
          <reentrant>false</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>etudiants</abstract-schema-name>
          <cmp-field>
            <field-name>login</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nom</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>prenom</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>inscrit</field-name>
          </cmp-field>
          <primkey-field>login</primkey-field>
     
          <query>
            <query-method>
              <method-name>findAll</method-name>
              <method-params/>
            </query-method>
            <ejb-ql>SELECT OBJECT(o) FROM etudiants o</ejb-ql>
          </query>
     
        </entity>
     
      </enterprise-beans>
     
      <assembly-descriptor>
        <container-transaction>
          <method>
            <ejb-name>EtudiantEJB</ejb-name>
            <method-name>*</method-name>
          </method>
          <trans-attribute>Required</trans-attribute>
        </container-transaction>
      </assembly-descriptor>
    </ejb-jar>
    -----------------------------------------------------------------------------------
    Le fichier de déploiement Jonas

    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
     
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <!-- Velocity template:  $Id: jonas-ejb-jar.vm,v 1.6 2005/08/10 16:24:21 el-vadimo Exp $ -->
    <jonas-ejb-jar xmlns="http://www.objectweb.org/jonas/ns"
    	           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	           xsi:schemaLocation="http://www.objectweb.org/jonas/ns
    		       http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_0.xsd" >
     
      <jonas-entity>
        <ejb-name>EtudiantEJB</ejb-name>
        <jndi-name>EtudiantHome</jndi-name>
        <jdbc-mapping>
          <jndi-name>jdbc_1</jndi-name>
        </jdbc-mapping>
      </jonas-entity>
     
    </jonas-ejb-jar>

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Points : 203
    Points
    203
    Par défaut
    Est-ce que tu as générer tes classes d'interposition avec GenIC ?

    Je crois que dans JOnAS il y a une commande GenIC (dans bin) et à la main il faut faire une commande du genre GenIC -d ../../classes ejb.jar dans le répertoire des source.

    Cette commande devrait générer les classes qui te manquent.

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Désolé, je ne peux pas t'aider, j'ai le même problème que toi à savoir que j'arrive a créer de session bean mais pas des entity sauf qu'en plus je dois me taper toutes les commandes à la main car je n'arrive pas à configurer correctement jope et eclipse.
    Quand je tente de déployer, j'ai toujours des erreurs dans mon build.xml.

    Peux-tu m'indiquer comment et avec quelles versions t'es parvenu à travailler avec jope? (ou a me filer une url si t'as suivi un tut)

Discussions similaires

  1. déployer une appli avec entity framework
    Par cyril53 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/03/2011, 11h13
  2. Impossible de déployer une application sur Tomcat
    Par manudwarf dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 10/10/2010, 19h31
  3. [EAR] Impossible de déployer une application cliente J2EE
    Par saveriu dans le forum Java EE
    Réponses: 2
    Dernier message: 23/03/2010, 16h32
  4. Utilisation des entity beans dans une JSP ?
    Par ellow dans le forum JPA
    Réponses: 3
    Dernier message: 17/12/2009, 12h27
  5. Réponses: 4
    Dernier message: 15/07/2008, 19h17

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