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 :

Problème instantiation EJB managedBean [EJB3]


Sujet :

Java EE

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Points : 109
    Points
    109
    Par défaut Problème instantiation EJB managedBean
    Bonjour,

    Je suis débutant avec les EJB et j'utilise le projet CRUD générer automatique par netbeans. jusqu'ici tout ce passe bien. J'ai un scénario. Je veux créer un Utilisateur qui appartient à un Groupe.
    1. Je sélectionne le groupe (parmi la liste des groupes existants).
    2. J'introduis les infos de l'utilisateur puis je sauvegarde.

    Voici la déclaration des managedbeans Groupe et Utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ManagedBean(name = "utilisateurController")
    @SessionScoped
    public class UtilisateurController extends BaseController {
     
        private Utilisateur current;
        private DataModel items = null;
        private InputStream stream = null;
        @EJB
        private com.netescape.jpa.facades.UtilisateurFacade ejbFacade;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @ManagedBean(name = "groupeController")
    @RequestScoped
    public class GroupeController extends BaseController {
        @EJB
        private com.netescape.jpa.facades.GroupeFacade ejbFacade;
    la classe UtilisateurFacade est déclarée comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @Stateless
    public class UtilisateurFacade extends AbstractFacade<Utilisateur> {
     
        @PersistenceContext(unitName = "netescapeAppPU")
        private EntityManager em;
    la classe mère AbstractFacade comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public abstract class AbstractFacade<T> {
        private Class<T> entityClass;
        public AbstractFacade(Class<T> entityClass) {
            this.entityClass = entityClass;
        }
        protected abstract EntityManager getEntityManager();
    voici le code qui pose problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     public String addUtilisateur() {
            UtilisateurController uc = new UtilisateurController();
            for (BaseEntity entity : getSelected(getItems().iterator())) {
                uc.getCurrent().setGroupe((Groupe) entity);
            }
            JsfUtil.addWarningMessage("Il y a déjà un Profil pour cet Utilisateur");
            JsfUtil.setSessionController(UtilisateurController.getAttribute(), uc);
            return "Utilisateur";
        }
    je crée un managedbean UtilisateurController au qu'elle j'ajoute le groupe sélectionné. au moment de la création du managedbean toutes les valeurs sont correctement initialisées à l'exception de l'EJB qui est null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public String create() {
            try {
                getFacade().create(current);
                JsfUtil.addSuccessMessage(ResourceBundle.getBundle(PathLink.JSF_RESSOURCES).getString("UtilisateurCreated"));
                return "List";
            } catch (Exception e) {
                JsfUtil.addErrorMessage(e, ResourceBundle.getBundle(PathLink.JSF_RESSOURCES).getString("PersistenceErrorOccured"));
                return null;
            }
        }
    Quand je fais appel à l'EJB pour sauvegarder l'utilisateur la méthode getFacade() retourne null, donc je ne sais pas sauvegarder l'utilisateur créer. Quelqu'un peut il m'expliquer comment accéder correctement à mon EJB?

  2. #2
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Points : 109
    Points
    109
    Par défaut
    Si mon problème n'est pas assez clair dites le moi, je peux fournir plus de détails concernant certains points.

    Merci

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    J'ai du mal à comprendre ton architecture. Normalement la création des managedBean n'est pas à la charge du codeur, c'est au framework JSF de manager les managedBean, dans un respect strict, ceci dit revenons à ton pb.
    Peux tu nous montrer le code complet des classes suivantes :
    -UtilisateurController
    -GroupeFacade
    -UtilisateurFacade
    -La classe contenant le methode addUtilisateur
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  4. #4
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Points : 109
    Points
    109
    Par défaut
    Merci pour ta réaction, mon problème venait surtout d'un manque de connaissance de l'architecture EJB, je ne comprenais pas le fait que c'est le conteneur qui est chargé de gérer le cycle de vie des EJB et j'essayait de les créer manuellement au moment de la création des managedBean cela renvoyer un NPE. Bref depuis les choses vont beaucoup mieux.

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

Discussions similaires

  1. problème éxecution ejb
    Par fattouch_squall dans le forum Java EE
    Réponses: 0
    Dernier message: 05/02/2010, 10h16
  2. [EJB3] Problème acces EJB distants
    Par denis13 dans le forum Java EE
    Réponses: 1
    Dernier message: 03/12/2009, 12h41
  3. Problème en EJB
    Par majda_afkir dans le forum Java EE
    Réponses: 2
    Dernier message: 18/11/2008, 09h13
  4. Calendrier probléme instantiation variable
    Par bdptaki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2008, 23h01
  5. Problème appel Ejb depuis un webservice
    Par D.Mounir dans le forum Services Web
    Réponses: 1
    Dernier message: 18/02/2008, 08h55

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