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 :

probleme avec un bean entité et persistance lors d'un clique sur bouton [EJB3]


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut probleme avec un bean entité et persistance lors d'un clique sur bouton
    Salut tout le monde
    voila j'ai commencé à me familiariser avec les java beans et j'ai voulu developper une petite partie d'une application
    dans cette partie j'ai conçu un entité bean, un session bean qui le controle et un JSF Managed bean une jsp qui s'occupe des l'affichage et qui contient un formulaire où je saisie les propriétés de mon entity bean sauf que j'ai un probleme lors du clique sur un bouton une action doit se declancher celle de persister mon bean et ainsi voir le resultat sur la table de ma base de données
    mais le prob c que lors du clique sur le bouton rien ne s'enregistre sur ma table et je pense que soit mon bean a un id null soit une mauvaise manipulation de la requete jsf mais je pense à 80% que c le premier cas voila mon code

    entité:
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    import javax.persistence.Table;
     
    /**
     *
     * @author Administrateur
     */
    @Entity
    @Table(name = "agence")
    @NamedQueries({@NamedQuery(name = "Agence.findByIdAgence", query = "SELECT a FROM Agence a WHERE a.idAgence = :idAgence"), @NamedQuery(name = "Agence.findByNomAgence", query = "SELECT a FROM Agence a WHERE a.nomAgence = :nomAgence"), @NamedQuery(name = "Agence.findByAdresseAgence", query = "SELECT a FROM Agence a WHERE a.adresseAgence = :adresseAgence"), @NamedQuery(name = "Agence.findByTelephoneAgence", query = "SELECT a FROM Agence a WHERE a.telephoneAgence = :telephoneAgence")})
    public class Agence implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "id_agence", nullable = false)
        private Integer idAgence;
        @Column(name = "nom_agence")
        private String nomAgence;
        @Column(name = "adresse_agence")
        private String adresseAgence;
        @Column(name = "telephone_agence")
        private String telephoneAgence;
     
        public Agence() {
        }
     
        public Agence(Integer idAgence) {
            this.idAgence = idAgence;
        }
     
        public Integer getIdAgence() {
            return idAgence;
        }
     
        public void setIdAgence(Integer idAgence) {
            this.idAgence = idAgence;
        }
     
        public String getNomAgence() {
            return nomAgence;
        }
     
        public void setNomAgence(String nomAgence) {
            this.nomAgence = nomAgence;
        }
     
        public String getAdresseAgence() {
            return adresseAgence;
        }
     
        public void setAdresseAgence(String adresseAgence) {
            this.adresseAgence = adresseAgence;
        }
     
        public String getTelephoneAgence() {
            return telephoneAgence;
        }
     
        public void setTelephoneAgence(String telephoneAgence) {
            this.telephoneAgence = telephoneAgence;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (idAgence != null ? idAgence.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Agence)) {
                return false;
            }
            Agence other = (Agence) object;
            if ((this.idAgence == null && other.idAgence != null) || (this.idAgence != null && !this.idAgence.equals(other.idAgence))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "entitebean.Agence[idAgence=" + idAgence + "]";
        }
     
    }
    session:
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package sessionbean;
     
    import entitebean.Agence;
    import javax.annotation.Resource;
    import javax.ejb.Stateless;
    import javax.ejb.TransactionManagement;
    import javax.ejb.TransactionManagementType;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.transaction.UserTransaction;
     
    /**
     *
     * @author Administrateur
     */
    @Stateless
    @TransactionManagement(TransactionManagementType.BEAN)
    public class sessionbeanBean implements sessionbeanRemote {
        @PersistenceContext(unitName="Stage-ejbPU")
        EntityManager persistance;
        @Resource
        private UserTransaction utx;
        // Add business logic below. (Right-click in editor and choose
        // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
        public sessionbeanBean(){}
        public void setAgence(){
            Agence agence=new Agence();
            persistance.persist(agence);
        }
        public void modifier(Agence agence){
            persistance.merge(agence);
        }
        public void supprimer(Agence agence){
            persistance.remove(agence);
        }
        public Agence rechercher(Integer id){
            return persistance.find(Agence.class, id);
        }
        public void save(Agence agence) throws Exception {
     
            try {
     
                utx.begin();
                persistance.joinTransaction();
                persistance.persist(agence);
     
                utx.commit();
            } catch (Exception ex) {
                try {
                     utx.rollback();
                     throw new Exception(ex.getLocalizedMessage());
                } catch (Exception e) {
                 throw new Exception(e.getLocalizedMessage());
                }
            } finally {
                persistance.close();
            }
         }
    }
    managed bean:

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package bean;
     
    import entitebean.Agence;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.FacesContext;
     
    import sessionbean.sessionbeanBean;
     
     
     
    /**
     *
     * @author Administrateur
     */
     
    public class NewJSFManagedBean {
     
        private sessionbeanBean session=new sessionbeanBean();
        private Agence agence=new Agence();
        /** Creates a new instance of NewJSFManagedBean */
        public NewJSFManagedBean() {
     
        }
        public void setSessionbeanBean(sessionbeanBean session){
            this.session=session;
        }
        public sessionbeanBean getSessionbeanBean(){
            return session;
        }
        public void setAgence(Agence agence){
            this.agence=agence;
        }
        public Agence getAgence(){
            return agence;
        }
        public String save() {
            try {
                this.session.save(agence);
                addSuccessMessage("Success");
                 } 
             catch (Exception ex) {
                    addErrorMessage(ex.getLocalizedMessage());
             }
          return "oui";
        }
       public static void addErrorMessage(String msg) {
            FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
            FacesContext fc = FacesContext.getCurrentInstance();
            fc.addMessage(null, facesMsg);
        }
     
        public static void addSuccessMessage(String msg) {
            FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
            FacesContext fc = FacesContext.getCurrentInstance();
            fc.addMessage("successInfo", facesMsg);
        }
    }
    ma jsp:

    .....
    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
    <h:form>
        <table width="450" border="0">
      <tr>
        <th scope="row">&nbsp; <h:outputText value="Nom de l'agence :" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <td><h:inputText id="nomAgence" value="#{NewJSFManagedBean.agence.nomAgence}" title="Nom de l'agence" /></td>
      </tr>
      <tr>
          <th scope="row"> &nbsp;<h:outputText value="Adresse de l'agence :" /> &nbsp; </th>
          <td><h:inputTextarea id="adresseAgence" value="#{NewJSFManagedBean.agence.adresseAgence}" title="Adresse de l'agence" rows ="2" cols="15" /> </td>
      </tr>
      <tr>
          <th scope="row">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<h:outputText value="Téléphone de l'agence :" /> &nbsp;</th>
          <td><h:inputText id="telephoneAgence" value="#{NewJSFManagedBean.agence.telephoneAgence}" title="Téléphone de l'agence" /></td>
      </tr>
      <tr>
        <th>&nbsp;&nbsp;</th>
        <td>&nbsp;<h:commandButton action="#{NewJSFManagedBean.save}" value="Enregistrer" /><input name="Effacer" type="reset" value="Effacer">&nbsp;</td>
      </tr>
    </table>
    </h:form>
    .....


    j'espere avoir de l'aide et je vous remercie



    j'attend toujours vos reponses je travaille encore là dessus et jusqu'à maintenant je trouve pas de solution svp que qlq1 me reponde car je suis vraiment bloqué

  2. #2
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Alors que le fait que l'id de l'entity est null est normal puisque tu utilises une stratégie de génération de la clé (annotation sur ton id)

    Par contre tu fais l'erreur d'instancier ton EJB dans ton managed Bean.
    Il ne faut jamais faire un new, mais utiliser soit l'injection, soit faire un lookup JNDI. (attention l'injection d'ejb dans un managedbean ne marche que en JSF 1.2 et par exemple ne marche pas dans Weblogic)

    Dans ton managed bean remplace la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      private sessionbeanBean session=new sessionbeanBean();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      @EJB private sessionbeanBean session;
    Enfin, je te recommande de laisser le container d'EJB gerer la transaction, la gestion manuelle est vraiment très rare

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci enormement Christophe d'avoir repondu à mon post

    svp vous pouvez me montrer comment faire un lookup pour mon exemple.

    et je tiens à préciser que l'annotation @EJB me crée des problemes quand je la supprime l'affichage de ma JSP se fait correctement.

    et je sais pas si vous avez remarquez que je fais aussi une instanciation de mon bean entité aussi est-ce correct de l'instancier dans mon managed bean?

    pour la gestion de transaction vous avez raison j'ai lu que c pas obligatoire puisque le conteneur s'en charge.

    j'attendrais votre reponse et je vous remercie encore une fois.

  4. #4
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Si la JSP ne s'affiche pas il y a sans doute une erreur sur l'écran ou alors dans les logs qui pourrait nous aider a avancer

    Au nom de l'interface implémentée par l'EJB, il semble que vous ayez choisi de faire du Remote.
    Pour un managedBean, on peut utiliser une interface Local.

    Quel est le serveur utilisé? L'injection des EJB dans les ManagedBean ne marche pas sur Weblogic...

    Pour le new sur l'entity, c'est ce qu'il faut faire.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci enormement pour vos reponse et pour votre aide

    donc je dois comprendre que je dois utiliser @Local au lieu du @Remote donc pas d'appel à distance.

    et comme serveur j'utilise Glassfish v2.

    et svp concernant le lookup ou l'injection comment faire?

    merci pour vos reponses et j'attend votre prochaine reponse je vous remercie encore une fois

  6. #6
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    L'interface Remote force une sérialisation des objets par le réseau avec appel via RMI entre deux JVM
    L'interface Local permet d'appeler au sein d'une même JVM ce qui est le cas d'un serveur. Il est donc préférable dans votre cas de passer par l'interface local.
    Donc oui, il faut remplacer @Remote par @Local.
    Ensuite l'injection ne nécessite rien de plus que la ligne que j'ai donné plus haut moyennant une correction, il faut déclarer une référence à l'interface Local:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @EJB private sessionbeanLocal session;
    Pour le lookup, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Context ctx = new InitialContext();
    sessionbeanLocal session = (sessionbeanLocal) ctx.lookup("sessionbeanBean");

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    merci beaucoup j'approche vraiment de la solution avec vos conseil merci bcp

    mais je tiens toujours à préciser que l'annotation @EJB ne marche pas est ce que vous pouvez m'aider??

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    en fait quand j'utilise l'annotation @EJB ça ne marche pas et quand je ne l'utilise pas j'ai ma page jsp qui s'affiche et je remplis mes champs mais au clique du bouton j'ai cette erreur:

    Cannot resolve reference Unresolved Ejb-Ref sessionbeanBean@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    Une exception s''est produite dans la phase J2EEC.java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref sessionbean@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    com.sun.enterprise.deployment.backend.IASDeploymentException: Erreur lors du chargement des descripteurs du déploiement pour le module [Final-war] -- Cannot resolve reference Unresolved Ejb-Ref sessionbeanBean@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:390)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
    at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:179)
    at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
    at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
    at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)
    Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref sessionbean@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:430)
    at com.sun.enterprise.deployment.WebBundleDescriptor.visit(WebBundleDescriptor.java:1406)
    at com.sun.enterprise.deployment.archivist.WebArchivist.validate(WebArchivist.java:188)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:790)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:744)
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:349)
    ... 10 more


    et ça apres que j'ai utilisé

    Context ctx=new InitialContext();
    gestionagencelocal=(GestionAgenceLocal) ctx.lookup("sessionbeanBean");

    c comme s'il ne sait pas: sessionbeanBean

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    bonjour Christophe je continue toujours le travail sur mon application mais j'ai toujours une exception relevée:

    javax.faces.el.EvaluationException: javax.naming.NameNotFoundException


    et ce au niveau du lookup("truc")

    le string "truc" que doit contenir le lookup c quoi exactement parce que c lui qui releve l'exception.

    merci pour vos reponse.je suis tres reconnaissant.

    svp je suis vraiment bloqué et ça m'attarde bcp svp de l'aide

  10. #10
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Dans Glassfish la solution simple doit marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Local
    public interface SessionBeanLocal {
    .....
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Stateless
    public SessionBeanBean implements SessionBeanLocal {
    ....
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class NewJSFManagedBean {
    @EJB SessionBeanLocal sessionBean;
    ....
    }
    Il est possible que la récupération de l'EJB au lookup ou son injection dans le managed Bean échoue car la construction de l'EJB a échoué (injection de l'entityManager ou du UserTransaction)
    Il faut essayer de commenter ces morceaux de code dans un premier temps.

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Salut Christophe mes codes entié et stateless et son interface local sont bien écrit et sans prob et le projet-ejb se deploie correctement mais toujours dans mon managed bean quand je mets l'annotation @EJB dans le managed bean et que je fait clique droit sur projet-war puis run ça plante.l'annotation @EJB ne marche pas du tout et je sais pas pq?voilà l'erreur quand je met le @EJB

    Deployment error:
    The module has not been deployed.
    See the server log for details.
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:166)
    at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:104)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor220.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:277)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:460)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
    Caused by: The module has not been deployed.
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:160)
    ... 16 more
    BUILD FAILED (total time: 1 second)

    svp j'ai encore besoin de ton aide et merci bcp pour tout l'effort que vous faites merci vraiment merci

  12. #12
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Comme le dit le message d'erreur, il y a une erreur de déploiement et il faut voir le log du serveur.
    Il faudrait le contenu de la fenetre de log de glassfish qui est un des onglets à coté de celui de déploiement dans NetBeans.

  13. #13
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Salut Christophe un autre jour et j'ai toujours besoin de ton aide

    donc voilà ce que génère glassfish v2 pour le deploiement de projet-ejb:

    CORE5024 : Module EJB [Final-ejb] déchargé avec succès !
    deployed with moduleid = Final-ejb
    naming.bind
    LDR5010 : Tous les ejb de [Final-ejb] chargés avec succès !

    donc comme tu vois ça ce passe correctement.


    et là l'erreur quand je lance mon projet-war en utilisant @EJB dans mon managed bean:

    Cannot resolve reference Unresolved Ejb-Ref mes_jsf.GestionagenceJSF/gestionagencelocal@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    Une exception s''est produite dans la phase J2EEC.java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref mes_jsf.GestionagenceJSF/gestionagencelocal@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    com.sun.enterprise.deployment.backend.IASDeploymentException: Erreur lors du chargement des descripteurs du déploiement pour le module [Final-war] -- Cannot resolve reference Unresolved Ejb-Ref mes_jsf.GestionagenceJSF/gestionagencelocal@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:390)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
    at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:179)
    at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
    at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
    at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)
    Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref mes_jsf.GestionagenceJSF/gestionagencelocal@jndi: @null@mes_sessions.GestionAgenceLocal@Session@null
    at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:430)
    at com.sun.enterprise.deployment.WebBundleDescriptor.visit(WebBundleDescriptor.java:1406)
    at com.sun.enterprise.deployment.archivist.WebArchivist.validate(WebArchivist.java:188)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:790)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:744)
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:349)
    ... 10 more

    j'attend votre reponse et je vous remercie enormement pour ton aide.

  14. #14
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Points : 120
    Points
    120
    Par défaut
    Salut,

    je viens de lire les différents posts, et ton message privé, pourrais tu mettre le code de ton entity bean, session bean, jsp.

    J'espère que je pourrais t'aider, par contre à ce que j'ai compris tu travailles avec GlassFish v2 et netbean. Pour info, lorsque j'ai commencé avec les ejb je travaillais avec GlassFish mais j'avais eu quelques problèmes du coup j'utilise maintenant JBoss, et ça fonctionne bien.

  15. #15
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Eureca
    Salut tout le monde

    je tiens à remercier enormement Mr Christophe et Hicha-M et bard pour leurs aide enfin j'ai pu resoudre mon probleme et tout marche à merveille merci enormement Hicha-M pour ta disponibilité et merci à Mr Christophe pour ses conseils.

    En fait pour montrer le resultat rien de magique certainement une mauvaise configuration de l'environnement de travail j'ai tout désinstallé et tout réinstallé à nouveau et voila tout marche bien sans prob et mon code était juste sans prob merci tout le monde.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2013, 02h08
  2. EJB3 Bean entité et persistance
    Par maparè dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 08/02/2010, 10h38
  3. Réponses: 4
    Dernier message: 08/07/2008, 22h39
  4. probleme avec les beans
    Par midou84 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/06/2008, 21h27
  5. Réponses: 10
    Dernier message: 30/07/2007, 18h42

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