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;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 @ManagedBean(name = "groupeController") @RequestScoped public class GroupeController extends BaseController { @EJB private com.netescape.jpa.facades.GroupeFacade ejbFacade;
la classe mère AbstractFacade 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;
voici le code qui pose problème.
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();
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 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"; }
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?
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; } }
Partager