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 :

JSF - Session User et EJB


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut JSF - Session User et EJB
    Bonjour,

    j'aimerais savoir comment faire pour gérer les sessions User et les EJB avec JSF ?

    Je m'explique j'aimerais pouvoir identifier l'utilisateur de page en page à l'aide et conserver diverse variable dans la session. Mais comment en rajouter ?

    De plus, comment faire pour gérer les EJB's avec JSF ? J'aimerai par exemple accèder à l'EJB : chaque appel de page, au moment de valider un formulaire...

  2. #2
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Cela dépend déjà de la manière dont tu as organisé tes EJB et dont tu veux les utiliser!

    Sinon voila un lien qui m'a pas mal aidé :
    https://blueprints.dev.java.net/bpca...ejbfacade.html
    je sais pas s'il s'adapte à ton cas....

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    En gros je n'est que un seul EJB session mais plusieurs Entity Bean.
    J'aimerais que quand l'utilisateur arrive sur le site web (quelque soit la page), créer un nouvelle EJB, et me servir de celui-ci à travers la navigation pour effectuer la validation des formulaires, récupérer les informations pour le rendu de la page web...

  4. #4
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Dans ton session bean tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Stateless
    public class UtilisateurFacade implements UtilisateurFacadeLocal, UtilisateurFacadeRemote {
     @PersistenceContext(unitName="nomPersistanceUnit")
        private EntityManager em;
    //fonctions dont tu as besoin
    }
    Puis pour faire appel à cet EJB, dans ton managed-bean, tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      @EJB(name="utilisateurFacade/Local")
        private UtilisateurFacadeLocal utilisateurFacadeLocal;
    Cette action va te permettre de pouvoir utiliser ton EJB (utiliser les fonctions de création/suppression/modification...) dans ton backing-bean de ta page JSF et donc de vérifier si c'est le bon utilisateur, valider les formulaires...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    J'ai un petit problème. Dans mon application web, il ne trouve pas la mon EJB.

    Mon application EJB (j'ai bien mis les interface et class dans des fichiers différents )
    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
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package fr.test;
     
    import javax.ejb.Local;
    import javax.ejb.Remote;
    import javax.ejb.Stateful;
     
    @Stateful
    @Remote({TestBeanBeanRemote.class})
    @Local({TestBeanBeanLocal.class})
    public class TestBeanBean implements TestBeanBeanLocal, TestBeanBeanRemote {
     
        private String pseudo;
     
        public TestBeanBean()
        {
            pseudo = null ;
        }
     
        @Override
        public void setPseudo(String pseudo) {
            this.pseudo = pseudo;
        }
     
        @Override
        public String getPseudo()
        {
            return pseudo ;
        }
     
        @Override
        public Boolean isValidatePseudo() {
            return pseudo != null ? Boolean.TRUE : Boolean.FALSE;
        }
    }
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package fr.test;
     
    /**
     *
     * @author Damien Pointa
     */
    public interface TestBeanBeanRemote {
     
        public void setPseudo(String pseudo);
     
        public Boolean isValidatePseudo();
     
        public String getPseudo();
     
    }
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package fr.test;
     
    /**
     *
     * @author Damien Pointa
     */
    public interface TestBeanBeanLocal {
     
        public void setPseudo(String pseudo);
     
        public Boolean isValidatePseudo();   
     
        public String getPseudo();
     
    }
    Mon application web :

    web.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     
        <context-param>
            <param-name>com.sun.faces.verifyObjects</param-name>
            <param-value>false</param-value>
        </context-param>
        <context-param>
            <param-name>com.sun.faces.validateXml</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
        </context-param>
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>faces/formulaire.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    mon 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
     
    package webapplication6;
     
    import fr.test.TestBeanBean;
    import javax.ejb.EJB;
     
    public class formulaire  {
     
        @EJB(name="fr.test.TestBeanBean/Local")
        private TestBeanBean utilisateurFacadeLocal;
     
        public formulaire()
        {
     
        }
     
        public void setPseudo(String pseudo)
        {
            utilisateurFacadeLocal.setPseudo(pseudo);
        }
     
        public String getPseudo()
        {
            if(!utilisateurFacadeLocal.isValidatePseudo())
                return "Mon pseudo" ;
            return utilisateurFacadeLocal.getPseudo();
        }
     
    }

  6. #6
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Question bête : tu as fait un projet de type EAR (Projet d'entreprise)?

    Sinon tu peux mettre ton log d'erreur peut-être que ça va nous aider à trouver une solution?

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2009, 17h43
  2. Réponses: 1
    Dernier message: 15/05/2009, 10h22
  3. JSF Session dupliqué
    Par My.Poux dans le forum JSF
    Réponses: 17
    Dernier message: 07/01/2009, 16h00
  4. [EJB3] [Débutant] Comment conserver une session avec des EJB ?
    Par Invité dans le forum Java EE
    Réponses: 5
    Dernier message: 08/02/2007, 23h36
  5. comment recuperer la session (user et mot de passe) de windows?
    Par mbouzouita dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 29/01/2007, 10h54

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