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

Persistance des données Java Discussion :

Problème d'instanciation d'un bean quand appel d'un DAO dans son constructeur


Sujet :

Persistance des données Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Problème d'instanciation d'un bean quand appel d'un DAO dans son constructeur
    Bonjour,

    Je débute en Java EE et voici mon problème:
    Je n'arrive pas à instancier un Bean lorsque dans son constructeur je fait appel à mon DAO.
    Quand je fait appel à ce même DAO dans un getter de ce même Bean je n'ai aucun problème.
    Mon but est de charger mes données de la base de donnée lors de l'initialisation du Bean (constructeur) pour éviter de faire des appels à chaque getter.
    Comment dois-je m'y prendre?

    Merci d'avance pour votre aide.

    Patrick

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et le DAO tu l'obtiens comment?

  3. #3
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Je fais une injection EJB et dans le constructeur je fais une déclaration new de mon DAO

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    ça serai mieux de montrer ton code si ça te dérange pas sinon avec moins d'information comme ça il serait difficile de t'aider.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Vu que c'est un ejb et que ça marche dans les geters, j'en conclue qje l'injection fonctionne. déplace ton code dans une méthode d'initialisation que tu annotes avec @postconstruct. Le conteneur ejb appellera automatiquement cette methode après la création de l'ejb.

  6. #6
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Super ça marche
    Merci beaucoup

  7. #7
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    J'ai bien progressé en utilisant cette méthode d'initialisation, mais maintenant je me retrouve devant un nouveau problème.
    J'ai un bean qui fait appel à plusieurs tables dans ma base de donné (pour les autres cela marche bien).
    J'obtient à l'appel de la page web l'erreur suivante: "Erreur lors de l’injection de ressources dans le bean géré "
    Si je déplace mon code de la méthode d'initialisation du bean (annoté @PostCreate") vers la méthode getter,je n'ai plus de problème de problème. Mais c'est moins propre et je dois ajouter un test faire appel à la base qu'au premier appel du getter.
    Mon code du bean en pièce jointe.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce serait bien d'avoir le détail de l'erreur.

  9. #9
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Voici l'erreur complète:

    /resources/utilisateur/ListerRendezvous.xhtml @23,60 test="#{listerRendezvousBean.listeVide}" Erreur lors de l’injection de ressources dans le bean géré «listerRendezvousBean»

    Cette apparait quelque soit le paramètre de du Bean appelé. Il s'agit donc bien d'un pb lors de l'appel du Bean et non lié au paramètre ou à l'appel

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as pas de stacktrace dans tes logs? Là c'est l'erreur JSF conséquence de l'erreur d'initialisation, mais l'erreur d'initialisation doit bien être logguée quelque part.

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il n'y a rien qui vous choque dans le constructeur ?
    rendezvousDao, clientDao et prestationDao sont annotées avec @EJB et il y a un new pour chacune de ces classes...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    J'ai cerné un peu plus le problème en mode débug:
    en passant la ligne suivante du code attaché dans un message précédent:
    client = clientDao.trouver(rendezvous.getIdClient());

    2015-10-19T13:18:21.525+0200|Infos: RAR7113: destroying connection 1 since it has reached the maximum usage of : 10

    Il semble donc que celà vienne d'un pb de configuration de mon pool de connexion.

    Pourtant j'ai les paramètres suivants:

    Pool Settings


    Initial and Minimum Pool Size: 8 Connections
    Minimum and initial number of connections maintained in the pool


    Maximum Pool Size: 32 Connections
    Maximum number of connections that can be created to satisfy client requests


    Pool Resize Quantity: 2 Connections
    Number of connections to be removed when pool idle timeout expires


    Idle Timeout: 300 Seconds
    Maximum time that connection can remain idle in the pool


    Max Wait Time: 60000 Milliseconds
    Amount of time caller waits before connection timeout is sent

    Est-ce qu'il y ad'autresparamètres que je devrais regarder?

  13. #13
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    OButterlin je pense qu'il y a quelque chose que je maîtrise pas bien.
    Dans ce Bean j'ai besoin uniquement des récupérer (pas de sauvegarde) des données situées dans trois tables différentes.
    Quelle serait la meilleur manière de faire sachant que mes trois DAO sont déjà prêts?

    Merci d'avance

  14. #14
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je pense que c'est un problème au niveau de ta couche service dans ton ejb, probablement du a ta manière de traiter tes requêtes et précisément l'ouverture et fermeture des tes connections. Tu peux nous posté la manière avec laquelle tu récupère tes résultats de la base de données.

    Sinon je te conseille de suivre encore des cours de programmation orienté objet car tout ce que tu as mis dans ta méthode postContruct tu l'aurais pu récupérer dans une seule ligne !!!

    Il y'a plein de truc comme dans ta classe Rendezvous tu dois avoir un attribut de type client mais pas un attribut idClient de type int...
    Et la tu peux seulement tout faire depuis ta liste de rendezVous genre rendezVous.getClient.getOtherObject.getOtherList ....

  15. #15
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    C'est vrai pour l'instant je décompose un peu (pour débugger plus facilement).

    Pour le DAO je viens de le modifier pour accéder aux différentes table avec le DAO RendezvousDAO:
    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
    @Stateless
    public class RendezvousDAO 
    {
    	private static final String JPQL_SELECT_PAR_IDUTILISATEUR 	= "SELECT r FROM Rendezvous r WHERE r.idUtilisateur=:idUtilisateur ORDER BY r.id";
    	private static final String PARAM_IDUTILISATEUR				= "idUtilisateur";
     
     
        // Injection du manager, qui s'occupe de la connexion avec la BDD
        @PersistenceContext( unitName = "gesthair_PU" )
        private EntityManager       em;
    	public Rendezvous trouver(int ID) throws DAOException 
    	{
    		try
    		{
    			return em.find(Rendezvous.class,ID);
    		}
    		catch (Exception e)
    		{
    			throw new DAOException("Rendez vous pas trouvé");
    		}
    	}
     
     
    	public Client trouverClient(int ID) throws DAOException 
    	{
    		try
    		{
    			return em.find(Client.class,ID);
    		}
    		catch (Exception e)
    		{
    			throw new DAOException("Rendez vous pas trouvé");
    		}
    	}
     
    	public Prestation trouverPrestation (int ID )throws DAOException
    	{
    		try
    		{
    			return em.find(Prestation.class, ID);
    		}
    		catch (Exception e)
    		{
    			throw new DAOException ("Prestation non trouvée");
    		}
    	}
     
     
    	public List<Rendezvous> lister(int idUtilisateur) throws DAOException
    	{
    		try
    		{
    			TypedQuery<Rendezvous> requete = em.createQuery( JPQL_SELECT_PAR_IDUTILISATEUR, Rendezvous.class );
    			requete.setParameter(PARAM_IDUTILISATEUR, idUtilisateur) ;
                return (List<Rendezvous>) requete.getResultList();
    		}
    		catch ( Exception e)
    		{
    			throw new DAOException(e);
    		}
    	}
    }
    Mon Bean est devenu:
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    @ManagedBean
    @ViewScoped
    public class ListerRendezvousBean implements Serializable 
    {
        private static final long serialVersionUID 		= 1L;
        public static final String ATT_SESSION_USER 	= "sessionUtilisateur";
     
     
        private HtmlDataTable 			composantNom;
        private List<Rendezvous> 		listRendezvous;
        private List<RendezvousComplet>	listRendezvousComplet;
        private boolean 				listeVide;
        private int 					idUtilisateur;
     
        // Injection EJB Bean Stateless
       @EJB
        private RendezvousDAO 	rendezvousDao;
     
        public ListerRendezvousBean()
        {
        	listeVide 				= true;
        	listRendezvousComplet 	= new ArrayList<RendezvousComplet>();
     
        	Utilisateur utilisateur;
    		FacesContext context = FacesContext.getCurrentInstance();
    		HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
    		utilisateur = (Utilisateur) session.getAttribute(ATT_SESSION_USER);
    		idUtilisateur = utilisateur.getId();
        }
     
     
        @PostConstruct
        private void init()
        {
    		/* Lecture en BDD de la liste des prestations */
        	listRendezvous = rendezvousDao.lister(idUtilisateur);
        	/* Détermination si la liste est vide */
    		if(listRendezvous != null)
    		{
    			if ( !listRendezvous.isEmpty())
    			{
    				listeVide = false;
     
    				/* Parcours de la liste de rendezvous*/
    				int idRendezvous;
    				Rendezvous rendezvous = new Rendezvous();
    				RendezvousComplet rendezvousComplet = new RendezvousComplet();
    				Client client = new Client();
    				Prestation prestation = new Prestation();
    				while ( !listRendezvous.isEmpty())
    				{
    					rendezvous = listRendezvous.get(0);
    					idRendezvous = rendezvous.getId();
    					rendezvousComplet.setId(idRendezvous);
    					/* Remplissage des données client */
    					client = rendezvousDao.trouverClient(rendezvous.getIdClient());
    					rendezvousComplet.setNomClient(client.getNom());
    					rendezvousComplet.setPrenomClient(client.getPrenom());
    					rendezvousComplet.setVilleClient(client.getVille());
    					/* Remplissage de la date */
    					rendezvousComplet.setDateRendezvous(rendezvous.getDateHeure());
    					/* Remplissage prestation 1*/
    					prestation = rendezvousDao.trouverPrestation(rendezvous.getIdPrestation1());
    					rendezvousComplet.setNomPrestation1(prestation.getNomPrestation());
    					rendezvousComplet.setOption1(prestation.getOptionPrestation());
    					/* Remplissage prestation2 */
    					if (rendezvous.getIdPrestation2() == 0)
    					{
    						rendezvousComplet.setNomPrestation2("");
    						rendezvousComplet.setOption2("");
    					}
    					else
    					{
    						prestation = rendezvousDao.trouverPrestation(rendezvous.getIdPrestation2());
    						rendezvousComplet.setNomPrestation2(prestation.getNomPrestation());
    						rendezvousComplet.setOption2(prestation.getOptionPrestation());
    					}
    					/* Remplissage prestation3 */
    					if (rendezvous.getIdPrestation3() == 0)
    					{
    						rendezvousComplet.setNomPrestation3("");
    						rendezvousComplet.setOption3("");
    					}
    					else
    					{
    						prestation = rendezvousDao.trouverPrestation(rendezvous.getIdPrestation3());
    						rendezvousComplet.setNomPrestation3(prestation.getNomPrestation());
    						rendezvousComplet.setOption3(prestation.getOptionPrestation());
    					}
    					/* Remplissage prestation4 */
    					if (rendezvous.getIdPrestation3() == 0)
    					{
    						rendezvousComplet.setNomPrestation4("");
    						rendezvousComplet.setOption4("");
    					}
    					else
    					{
    						prestation = rendezvousDao.trouverPrestation(rendezvous.getIdPrestation4());
    						rendezvousComplet.setNomPrestation4(prestation.getNomPrestation());
    						rendezvousComplet.setOption4(prestation.getOptionPrestation());
    					}
     
    					listRendezvousComplet.add(rendezvousComplet);
    					listRendezvous.remove(0);
    				}
    			}			
    		}   	
        }
     
        public HtmlDataTable getComposantNom()
        {
        	return composantNom;
        }
     
        public void setComposantNom ( HtmlDataTable nomComposant)
        {
        	composantNom = nomComposant;
        }
     
        public List<RendezvousComplet> getListRendezvousComplet()
        {
        	return listRendezvousComplet;
        }
     
        public boolean getListeVide()
        {
        	return listeVide;
        }
     
    }
    Mais le problème reste le même:
    erreur JSF:
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    /resources/utilisateur/ListerRendezvous.xhtml @23,60 test="#{listerRendezvousBean.listeVide}" Erreur lors de l’injection de ressources dans le bean géré «listerRendezvousBean»
    
    et le log sous eclipse:
    2015-10-19T18:31:11.513+0200|FATAL: JSF1073 : javax.faces.view.facelets.TagAttributeException intercept� durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=/resources/utilisateur/ListerRendezvous.xhtml @23,60 test="#{listerRendezvousBean.listeVide}" Erreur lors de l�injection de ressources dans le bean g�r� �listerRendezvousBean�
    2015-10-19T18:31:11.514+0200|FATAL: /resources/utilisateur/ListerRendezvous.xhtml @23,60 test="#{listerRendezvousBean.listeVide}" Erreur lors de l�injection de ressources dans le bean g�r� �listerRendezvousBean�
    javax.faces.view.facelets.TagAttributeException: /resources/utilisateur/ListerRendezvous.xhtml @23,60 test="#{listerRendezvousBean.listeVide}" Erreur lors de l�injection de ressources dans le bean g�r� �listerRendezvousBean�
    	at com.sun.faces.facelets.tag.TagAttributeImpl.getObject(TagAttributeImpl.java:358)
    	at com.sun.faces.facelets.tag.TagAttributeImpl.getBoolean(TagAttributeImpl.java:150)
    	at com.sun.faces.facelets.tag.jstl.core.ChooseWhenHandler.isTestTrue(ChooseWhenHandler.java:87)
    	at com.sun.faces.facelets.tag.jstl.core.ChooseHandler.apply(ChooseHandler.java:104)
    	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:203)
    	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
    	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
    	at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:990)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at com.pat.GestHairHome.filter.RestrictionFilter.doFilter(RestrictionFilter.java:64)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: Erreur lors de l�injection de ressources dans le bean g�r� �listerRendezvousBean�
    	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:227)
    	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:103)
    	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
    	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
    	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257)
    	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117)
    	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    	at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116)
    	at com.sun.el.parser.AstValue.getBase(AstValue.java:151)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:200)
    	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
    	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    	at com.sun.faces.facelets.tag.TagAttributeImpl.getObject(TagAttributeImpl.java:356)
    	... 49 more
    Caused by: com.sun.faces.spi.InjectionProviderException: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting invoke lifecycle  method private void com.pat.GestHairHome.bean.ListerRendezvousBean.init()
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:231)
    	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:221)
    	... 63 more
    Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting invoke lifecycle  method private void com.pat.GestHairHome.bean.ListerRendezvousBean.init()
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:393)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:306)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:229)
    	... 64 more
    Caused by: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
    	at java.security.AccessController.doPrivileged(Native Method)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:376)
    	... 66 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider$2.run(GlassFishInjectionProvider.java:382)
    	... 68 more
    Caused by: java.lang.NullPointerException
    	at com.pat.GestHairHome.bean.ListerRendezvousBean.init(ListerRendezvousBean.java:76)
    	... 73 more


    Une idée?

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: java.lang.NullPointerException
    at com.pat.GestHairHome.bean.ListerRendezvousBean.init(ListerRendezvousBean.java:76)
    Il y a quoi à ListerRendezvousBean.java:76 ?

  17. #17
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne 76 : 					rendezvousComplet.setNomClient(client.getNom());
    causé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2015-10-19T19:12:25.855+0200|Infos: RAR7113: destroying connection 1 since it has reached the maximum usage of : 10
    quand excution de la ligne 75 : 					client = rendezvousDao.trouverClient(rendezvous.getIdClient());

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben ton rendez-vous est null. Tu devrais vérifier la valeur de tes objet avant de les utiliser. Il y a plein de requête DB qui peuvent te retourner du vide

  19. #19
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Effectivement mais la ce n'est pas le problème

  20. #20
    Membre à l'essai
    Homme Profil pro
    responsable programme (electronique)
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable programme (electronique)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Pour résumer la situation:
    Appel depuis le Bean d'une lecture en base par le DAO:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    					client = rendezvousDao.trouverClient(rendezvous.getIdClient());
    dans le DAO:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public Client trouverClient(int ID) throws DAOException 
    	{
    		try
    		{
    			return em.find(Client.class,ID);
    		}
    		catch (Exception e)
    		{
    			throw new DAOException("Rendez vous pas trouvé");
    		}
    	}
    tout se passe bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2015-10-19T23:48:09.842+0200|Précis: SELECT ID, ADRESSE, CODEPOSTALE, DATECREATION, DATENAISSANCE, DISTANCE, EMAIL, IDUTILISATEUR, NOM, PRENOM, TELEPHONE, VILLE FROM CLIENT WHERE (ID = ?)
    	bind => [1]
    Mais juste après j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2015-10-19T23:48:09.864+0200|Infos: RAR7113: destroying connection 1 since it has reached the maximum usage of : 10
    ce qui se traduit par un client = null après retour dans le bean.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Que faire quand on se sent espionné dans son ordi ?
    Par Chlochlo dans le forum Sécurité
    Réponses: 202
    Dernier message: 09/09/2013, 11h51
  2. Réponses: 5
    Dernier message: 24/03/2013, 20h15
  3. Réponses: 3
    Dernier message: 01/05/2007, 16h07
  4. [JSP-Bean] Probléme d'instanciation d'une classe !
    Par adil_vpb dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 02/03/2007, 19h29

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