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 :

Problème association EJB3 / Weblogic / JPA / JSF


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut Problème association EJB3 / Weblogic / JPA / JSF
    Bonjour à tous,
    Je débute sur les ejb, je cherche à faire une application :ejb,jsf,jpa
    D'abord j'ai constaté qu'avec les ejbs on confond la couche service et la couche dao(comparant avec une application web sans ejb)
    ie:on attaque directement la couche dao depuis un managedBean de jsf par exemple!
    Moi je cherche à respecter mon architecture habituelle:
    Couche présentation:jsf
    Couche service
    Couche dao
    Avec le managedBean de jsf qui appelle la couche service qui à son tour appelle le dao:

    MON PROBLEME:
    Toutes les injections ne fonctionnent pas!!!:
    l'entity manager est à null!!! par exemple(@PersistenceContext(unitName = JPA_UNIT_NAME) ne marche pas
    Aussi cette injection ne marche pas:
    @EJB
    private IGenericDao<Personne> daoPersonne;


    Je me demande donc est ce que le fait que j'utilise les generics qui pose problème
    Merci de me donner plus d'informations

    Voici un apperçu de mes classes:
    La couche dao:
    //--------------------------------------
    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
     
    @Remote
    public interface IGenericDao<T> {
    	public void create(T e) ;}
     
    public abstract class GenericDaoImpl<T>  implements IGenericDao<T>{
    protected Class<T> typeEntity;
    	private static final String JPA_UNIT_NAME="java_project"; 
    	@PersistenceContext(unitName = JPA_UNIT_NAME)
     
    	@SuppressWarnings("unchecked")
    	public GenericDaoImpl(Class<T> typeEntity) {
    		{
    			this.typeEntity = typeEntity;
    		}
    	}
    public void create(T e) {
    		em.persist(e);
    	}}
     
    @Stateless
    public class DaoPersonne extends GenericDaoImpl<Personne>{
    	public DaoPersonne() {
    		super(Personne.class);
    	}
     
    }
    la couche service:
    //-------------------------------------
    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
     
    @Remote
    public interface IServiceEJBRemote<T> {
    public void create(T t);
    }
     
    @Stateless
    public class ServicePersonneEJB implements IServiceEJBRemote<Personne> {
     
    @EJB
    public IGenericDao<Personne> daoPersonne;
     
    public ServicePersonneEJB() {
    	super();
    }
     
    @Override
    public void create(Personne e) {
    	daoPersonne.create(e);
    }
    }
    la couche ManagedBean de jsf:
    //-----------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    @ManagedBean
    @SessionScoped
    public class ControllerManager {
     
    @EJB
    IServiceEJBRemote<Personne> servicePersonne;
     
    public String create(){
    servicePersonne.create(newPersonne);
    return "";
    }
    }
    //-----------------------------------

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    l'architecture générale pour la mise en œuvre des EJB est:
    - Une interface (Local ou remote)
    -une implémentation de cette Interface (annoté avec Stateless ou Statefull etc.)
    cependant, les implémentations les plus récente nous permette de nous affranchir même de l'implémentation de l'interface. on peut directement code l'EJB dans une classe annoté avec Stateless ou Statefull etc.
    Ne te rends tu pas compte que dans tes couches DAO et SERVICE tel que tu le dis tu fais la même chose? tu injecte un EJB dans un autre qui fait la même chose que lui. tu devrais te limiter à la couche DAO telle que tu l'as implémenté.
    pour les injections qui ne marche pas, vérifie bien ton fichier persistence.xml. et poste les erreurs renvoyé au cas ou tu ne trouve pas le problème
    Cordialement

  3. #3
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut Problème association : ejb3,weblogic,jpa,jsf
    Bonjour,

    Merci pour ton retour,
    Mais même si pour l'exemple les deux couches font la même chose,en réalité,ce n'est pas vrai,car si on a des codes
    métiers on doit le mettre dans la couche service et non dans le DAO.

    Cordialement

Discussions similaires

  1. Problème JNDI (EJB3+JPA)
    Par Guerr dans le forum JPA
    Réponses: 2
    Dernier message: 05/03/2012, 01h29
  2. [EJB3] Appel d'un ejb3 à partir de JSF ou Servlet
    Par lahiane dans le forum Java EE
    Réponses: 3
    Dernier message: 07/12/2007, 14h46
  3. problème de déployement Weblogic
    Par F2S dans le forum Weblogic
    Réponses: 3
    Dernier message: 05/07/2007, 17h02
  4. Problème association virtual & friend
    Par Hidekii dans le forum C++
    Réponses: 2
    Dernier message: 01/08/2006, 13h46
  5. Problème balise struts / weblogic
    Par DarkWark dans le forum Weblogic
    Réponses: 2
    Dernier message: 18/05/2006, 22h41

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