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 :

Erreur de lancement d'application EJB, JPA, JSF


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut Erreur de lancement d'application EJB, JPA, JSF
    bonjour à tous ,
    j'ai hésité de poster dans le forum netbeans bon parce que j'ai l'impression que c'est au niveau du déploiement
    voila mon problême je réalise une application web JPA,EJB3,JSF avec glassfish comme serveur d'appli et netBeans comme IDE.
    -coté JPA j'ai un package avec mes pojos (maping o/r)
    -coté metier(EJB) j'ai autre package qui contient les interfaces et et mes stateless
    -ensuite un dernier package qui représente les bean managed qui agit avec ma jsf et dans lequel j'injecte ma référence EJB(@EJB) .

    j'ai crée une pool de connexion à mysql et ainsi que une source de donnée au niveau du serveur d'application.
    et je lance une page ou je cherche juste à insérer dans uen table de ma bd et hope j'ai cette erreur venant de netbeans .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Déploiement de l'application dans le domaine a échoué ; Erreur lors du chargement des descripteurs du déploiement pour le module [MyAppliJpa] -- Cannot resolve reference Unresolved Ejb-Ref beanJsf.EnregUser/ui@jndi: @null@Metier.UserInterface@Session@null
    E:\progJava\MyAppliJpa\nbproject\build-impl.xml:556: The module has not been deployed.
    BUILD FAILED (total time: 0 seconds)
    et voila déjà 4jours que je m'arrache les cheveux rien n'y fait je trouve pas le pb j'ai recrée et crée le projet même avec un simple exemple d'insertion. Si quelqu'un peu m'aider vraiment ça sera une grosse épine enlever du pied c'est pour mon mémoire et je suis déjà super en retard. Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    heuuu voila un pti exemple de code(coté traitement) juste pour insérer dans une table Vendeuracheteur.

    fichier de mapping Jpa dans le package pojos
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
     
    package pojos;
     
    import java.io.Serializable;
    import java.util.Date;
    import java.util.List;
    import javax.persistence.Basic;
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
     
    /**
     *
     * @author steave
     */
    @Entity
    @Table(name = "vendeuracheteur")
    @NamedQueries({@NamedQuery(name = "Vendeuracheteur.findAll", query = "SELECT v FROM Vendeuracheteur v"), @NamedQuery(name = "Vendeuracheteur.findById", query = "SELECT v FROM Vendeuracheteur v WHERE v.id = :id"), @NamedQuery(name = "Vendeuracheteur.findByNom", query = "SELECT v FROM Vendeuracheteur v WHERE v.nom = :nom"), @NamedQuery(name = "Vendeuracheteur.findByPrenom", query = "SELECT v FROM Vendeuracheteur v WHERE v.prenom = :prenom"), @NamedQuery(name = "Vendeuracheteur.findByEmail", query = "SELECT v FROM Vendeuracheteur v WHERE v.email = :email"), @NamedQuery(name = "Vendeuracheteur.findByMdp", query = "SELECT v FROM Vendeuracheteur v WHERE v.mdp = :mdp"), @NamedQuery(name = "Vendeuracheteur.findByDateInscript", query = "SELECT v FROM Vendeuracheteur v WHERE v.dateInscript = :dateInscript"), @NamedQuery(name = "Vendeuracheteur.findByEtatCpte", query = "SELECT v FROM Vendeuracheteur v WHERE v.etatCpte = :etatCpte")})
    public class Vendeuracheteur implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Basic(optional = false)
        @Column(name = "id", nullable = false)
        private Integer id;
        @Basic(optional = false)
        @Column(name = "nom", nullable = false, length = 20)
        private String nom;
        @Basic(optional = false)
        @Column(name = "prenom", nullable = false, length = 25)
        private String prenom;
        @Basic(optional = false)
        @Column(name = "email", nullable = false, length = 30)
        private String email;
        @Basic(optional = false)
        @Column(name = "mdp", nullable = false, length = 15)
        private String mdp;
        @Basic(optional = false)
        @Column(name = "date_inscript", nullable = false)
        @Temporal(TemporalType.DATE)
        private Date dateInscript;
        @Basic(optional = false)
        @Column(name = "etat_cpte", nullable = false, length = 20)
        private String etatCpte;
        @OneToMany(cascade = CascadeType.ALL, mappedBy = "id")
        private List<AdresseLivraison> adresseLivraisonCollection;
     
        public Vendeuracheteur() {
        }
     
        public Vendeuracheteur(Integer id) {
            this.id = id;
        }
     
        public Vendeuracheteur(Integer id, String nom, String prenom, String email, String mdp, Date dateInscript, String etatCpte) {
            this.id = id;
            this.nom = nom;
            this.prenom = prenom;
            this.email = email;
            this.mdp = mdp;
            this.dateInscript = dateInscript;
            this.etatCpte = etatCpte;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
     
        public String getEmail() {
            return email;
        }
     
        public void setEmail(String email) {
            this.email = email;
        }
     
        public String getMdp() {
            return mdp;
        }
     
        public void setMdp(String mdp) {
            this.mdp = mdp;
        }
     
        public Date getDateInscript() {
            return dateInscript;
        }
     
        public void setDateInscript(Date dateInscript) {
            this.dateInscript = dateInscript;
        }
     
        public String getEtatCpte() {
            return etatCpte;
        }
     
        public void setEtatCpte(String etatCpte) {
            this.etatCpte = etatCpte;
        }
     
        public List<AdresseLivraison> getAdresseLivraisonCollection() {
            return adresseLivraisonCollection;
        }
     
        public void setAdresseLivraisonCollection(List<AdresseLivraison> adresseLivraisonCollection) {
            this.adresseLivraisonCollection = adresseLivraisonCollection;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.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 Vendeuracheteur)) {
                return false;
            }
            Vendeuracheteur other = (Vendeuracheteur) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "pojos.Vendeuracheteur[id=" + id + "]";
        }
     
    }
    ***package metier****
    ma class 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
     
    package Metier;
    import javax.ejb.*;
    import pojos.*;
     
    /**
     *
     * @author steave
     */
    @Local
    public interface UserInterface {
     
        public void creerUser(Vendeuracheteur va);
     
    }
    mon Stateless

    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
    package Metier;
    import javax.ejb.*;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import pojos.*;
     
    /**
     *
     * @author steave
     */
    @Stateless
    public class UserMetier implements UserInterface {
        @PersistenceContext(unitName="myAppliJpa")
        private EntityManager em;
     
        public void creerUser(Vendeuracheteur va){
     
            em.persist(va);
        }
     
    }
    et en fin mon package pour mes bean managed

    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
     
    package beanJsf;
    import java.util.Date;
    import javax.ejb.*;
    import Metier.*;
    import pojos.*;
     
    /**
     *
     * @author steave
     */
    public class EnregUser {
       @EJB
       private static UserInterface ui;   //appel de l'interface
     
       private String nom;
       private String prenom;
       private String  email;
       private String mdp;
       private java.util.Date date_inscript= new Date();
       private String etat="actif";
     
        public Date getDate_inscript() {
            return date_inscript;
        }
     
        public String getEmail() {
            return email;
        }
     
        // le reste des getters et setters ........
       //................................
     
      //action pour insérer dans la table
        public String createUser(){
     
            Vendeuracheteur va = new Vendeuracheteur();
            va.setNom(this.nom);
            va.setEmail(this.email);
            va.setEtatCpte(this.etat);
            va.setEmail(this.email);
            va.setMdp(this.mdp);
            va.setDateInscript(this.date_inscript);
     
            ui.creerUser(va);
            return "succes";
     
        }

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    personne

  4. #4
    Membre averti
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Je suis un peu rouille avec JSF mais le code me semble correct. Il semble que c'est un probleme de deploiement lie aux descripteurs. La reference EJB de UserInterface dans la classe EnregUser n'est trouvee. Il faut verifier le descripteur.
    Autre piste, le static me semble incorrect pour une reference EJB, ce devrait etre:
    @EJB private UserInterface ui;

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    merci pour ta réponse , mais j'ai aucune idée de ce que le compilateur appel descripteur

  6. #6
    Membre averti
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Si "descripteur de deploiement" n'evoque rien, c'est que tu n'utilises pas cette option. C'est un fichier xml dans lequel tu decris toutes les references entre les EJBs. C'est optionnel (et tant mieux) depuis JavaEE 5. Donc j'imagine que tu n'utilises que les annotations.
    Unresolved Ejb-Ref beanJsf.EnregUser/ui@jndi: @null@Metier.UserInterface@Session@null
    correspond clairement a une erreur de reference. Si je ne me trompe pas, pour que l'application puisse fonctionner avec des EJB avec une interface locale (@Local), il faut que tout soit package dans un seul fichier de deploiement .ear qui contient le .war et .ejb
    (ou avec JavaEE 6, tout dans le meme fichier web .war).
    Concretement, avec NetBeans, il faut avoir creer le projet en choisissant Entreprise Application.
    Sinon il faut declarer l'interface du bean session @Remote.

Discussions similaires

  1. [2000] Erreur au lancement d'applications.
    Par kabkab dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 02/11/2014, 13h08
  2. Application web JPA/EJB/JSF
    Par ayasaidi dans le forum JSF
    Réponses: 4
    Dernier message: 30/12/2013, 18h44
  3. Projet EJB / JPA / JSF
    Par assemism dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 12/04/2013, 19h51
  4. [Liferay] Déployer une application EJB 3 + JSF sur Liferay
    Par Issamoo dans le forum Portails
    Réponses: 2
    Dernier message: 28/09/2012, 20h23
  5. Réponses: 4
    Dernier message: 02/08/2008, 18h56

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