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

JSF Java Discussion :

Injection @EJB dans un Managed Beans


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Par défaut Injection @EJB dans un Managed Beans
    Bonjour,
    J'exécute une application JSF dans un conteneur Web, pour l'accès aux données j'utilises les EJB. Je rencontre un problème pour la partie cliente, lorsque j'injecte l'annotation @EJB. Je n'ai trouvé aucun tutoriel sur ce site pouvant m'aider.

    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
     
    public class BackingBean {
     
        @EJB
        private IDaoClientLocal idao;
     
        private String nom = "Baron";
        private HtmlInputText composantNom;
        private HtmlCommandButton commandButton;
        private String name;
     
        public String getName() {
            return nom;
        }
        public void setName(String pName) {
            this.name = pName;
        }
        public void setComposantNom(HtmlInputText pCommand) {
            composantNom = pCommand;
        }
        public HtmlInputText getComposantNom() {
            return composantNom;
        }
        public void setcommandButton(HtmlCommandButton pCB) {
            this.commandButton = pCB;
        }
        public HtmlCommandButton getCommandButton() {
            return this.commandButton;
        }
        public void doProcess(){
             List<Client> cl = idao.getAllClients();
     
              if (commandButton != null) {
                this.commandButton.setDisabled(true);
              }
              if (composantNom != null) {
                composantNom.setValue(cl.get(0).getNom());
              }
     
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:form>
       <h:inputText value="#{backingbean.name}" binding="#{backingbean.composantNom}" />
        <h:commandButton value="Transformer" binding="#{backingbean.commandButton}" action="#{backingbean.doProcess}" />
     </h:form>
    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
     
    Cannot resolve reference Unresolved Ejb-Ref test.beans.BackingBean/idao@jndi: @null@edtc.dao.client.IDaoClientLocal@Session@null
    Une exception s''est produite dans la phase J2EEC.java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref test.beans.BackingBean/idao@jndi: @null@edtc.dao.client.IDaoClientLocal@Session@null
    com.sun.enterprise.deployment.backend.IASDeploymentException: Erreur lors du chargement des descripteurs du déploiement pour le module [JSFAppl] -- Cannot resolve reference Unresolved Ejb-Ref test.beans.BackingBean/idao@jndi: @null@edtc.dao.client.IDaoClientLocal@Session@null
            at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:406)
            at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:426)
            at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:160)
            at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:182)
            at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:208)
            at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
            at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
            at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:283)
            at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:835)
            at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
            at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:225)
    Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref test.beans.BackingBean/idao@jndi: @null@edtc.dao.client.IDaoClientLocal@Session@null
            at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:430)
            at com.sun.enterprise.deployment.WebBundleDescriptor.visit(WebBundleDescriptor.java:1415)
            at com.sun.enterprise.deployment.archivist.WebArchivist.validate(WebArchivist.java:188)
            at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:840)
            at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:794)
            at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:365)
            ... 10 more
    Personne ne m'a jamais répondu depuis 2009 sur ces forums, j'aimerais bien qu'on m'accorde une chance cette fois-ci
    Cordialement.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Comment as-tu déclaré ta classe IDaoClientLocal?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Par défaut
    Je vous remercie pour votre réponse.

    Voici le code de IDaoClientLocal qui étend IDaoClient, l'interface contenant mes méthodes de la logique métier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Local
    public interface IDaoClientLocal extends IDaoClient{
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public interface IDaoClient {
     
         public List<Client> getAllClients();
         public int getConnexionClient(String login, String password);
         public boolean getInsertClient(String nom, String prenom, String adresse,
                String ville, String region, String pays, int codePostal,
                String telephone, String mail, String login, String password);
         public Client getAllReservationById(int idClient);
         public int getNombreReservation(int service, int idClient);
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Par défaut
    Personne n'a jamais crée ce genre de clients ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Tu dois plutôt avoir un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Stateless
    @Local(IDaoClient.class)
    public class IDaoClientLocal implements IDaoClient{
    }

  6. #6
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Tes EJB font partie du war?
    Quel serveur d'appli?

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

Discussions similaires

  1. Erreur d'injection de l'EJB dans le Managed Bean
    Par bruneltouopi dans le forum Java EE
    Réponses: 18
    Dernier message: 04/01/2014, 16h44
  2. [Framework] Injection de Service spring dans un managed bean JSF
    Par _skip dans le forum Spring
    Réponses: 10
    Dernier message: 12/03/2009, 09h28
  3. injection EJB dans un validateur JSF
    Par drim dans le forum Seam
    Réponses: 3
    Dernier message: 09/01/2008, 17h13
  4. [EJB3] Injection @EJB dans le Client Web ne fonctionne pas
    Par warwink dans le forum Java EE
    Réponses: 9
    Dernier message: 04/12/2007, 00h28
  5. Réponses: 3
    Dernier message: 15/09/2006, 14h01

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