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

Servlets/JSP Java Discussion :

Erreur "javax.el.PropertyNotFoundException"


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Erreur "javax.el.PropertyNotFoundException"
    Bonjour,

    je ne sais pas si c'est ici que je dois poster cette question mais comme problème désigne la servlet jsp, je me demandais si vous m'apportez vos lumières.

    juste pour préciser, j'ai quasi la même chose pour une autre entité quizz, et je ne rencontre pas ce genre de problème

    j'ai essayé de lancer la requête plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public List<Question> getAllQuestion() {
    		return em.createQuery("select q from Question q").getResultList();
    	}
    juste pour afficher la liste des question et j'ai une erreur :

    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
    GRAVE: "Servlet.service()" pour la servlet jsp a lancé une exception
    javax.el.PropertyNotFoundException: Property 'questionD' not found on type metier.Question
    	at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
    	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
    	at javax.el.BeanELResolver.property(BeanELResolver.java:300)
    	at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
    	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
    	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
    	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
    	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
    	at org.apache.jsp.WEB_002dINF.views.listQuestion_jsp._jspx_meth_c_005fout_005f1(listQuestion_jsp.java:213)
    	at org.apache.jsp.WEB_002dINF.views.listQuestion_jsp._jspx_meth_c_005fforEach_005f0(listQuestion_jsp.java:141)
    	at org.apache.jsp.WEB_002dINF.views.listQuestion_jsp._jspService(listQuestion_jsp.java:93)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    	at web.Application.doListQuestion(Application.java:250)
    	at web.Application.doGet(Application.java:156)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	at java.lang.Thread.run(Unknown Source)
    2 mai 2011 23:42:20 org.apache.catalina.core.StandardWrapperValve invoke

    je n'y comprends rien, est ce que c'est au niveau de mon jsp qui manque quelque chose, car quand j'enleve cette ligne le reste s'affiche?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><c:out value="${question.questionD}"/></td>
    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
    <%@page contentType="text/html;charset=UTF-8"%>
    <%@page pageEncoding="UTF-8"%>
    <%@ page session="false" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
    <%@ taglib uri="/WEB-INF/taglibs-datetime.tld" prefix="dt" %>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
     
     
    <html>
    <head>
    	<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
    	<title>Question</title>
    </head>	
    <body>
     
    	<h2>Liste des Question</h2>
    		<table border="1">
    			<tr>
    				<th>id</th>
    				<th>question</th>
    				<th>valeur question</th>
    				<th></th>
    			</tr>
    			<c:forEach var="question" items="${questions}">
    				<tr>
    					<td><c:out value="${question.idQuestion}"/></td>					
    					<td><c:out value="${question.questionD}"/></td>
    					<td><c:out value="${question.pointQuestion}"/></td>
    					<td><a href="<c:url value="/do/editReponse?id=-1"/>">Ajouter une reponse</a></td>				
    					<td><a href="<c:url value="/do/listReponse?id=${question.idQuestion}"/>">liste des reponses</a></td>
    					<td><a href="<c:url value="/do/editQuestion?id=${question.idQuestion}"/>">Modifier</a></td>
    					<td><a href="<c:url value="/do/deleteQuestion?id=${question.idQuestion}"/>">Supprimer</a></td>
    				</tr>
    			</c:forEach>
    		</table>
    		<br>
    		<a href="<c:url value="/do/editQuestion?id=-1"/>">Ajout Question</a>
     
    </body>
    </html>
    mon entité question est :
    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
    package metier;
     
    import java.util.ArrayList;
    import java.util.Collection;
     
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
     
    @Entity
    @Table(name="Question")
    public class Question {
     
    	@Id
    	@Column(name = "idQuestion", nullable = false)
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	private int idQuestion;
     
    	@Column(name = "questionD", length = 100, nullable = false)
    	private String questionD;
     
    	@Column(name = "pointQuestion", length = 5, nullable = false)
    	private int pointQuestion;
     
    	@ManyToOne
    	@JoinColumn(name = "idQuizz", nullable = false)
    	private Quizz quizz;
     
    	@OneToMany(cascade=CascadeType.ALL, mappedBy="question")
    	private Collection<Reponse> reponsePropose = new ArrayList<Reponse>();
     
     
    	//constructeurs
    	public Question()
    	{}
     
    	public Question(String questionD, int pointQuestion,  Quizz quizz)
    	{
    		this.questionD=questionD;
    		this.pointQuestion=pointQuestion;
    		this.quizz=quizz;
    	}
     
    	public int getIdQuestion() {
    		return idQuestion;
    	}
     
    	public void setIdQuestion(int idQuestion) {
    		this.idQuestion = idQuestion;
    	}
     
    	public Quizz getQuizz(){
    		return quizz;
    	}
     
    	public void setQuizz( Quizz quizz ){
    		this.quizz = quizz;
    	}
     
    	public String getQuestion() {
    		return questionD;
    	}
     
    	public void setQuestion(String questionD) {
    		this.questionD = questionD;
    	}
     
    	public int getPointQuestion(){
    		return pointQuestion;
    	}
     
    	public void setPointQuestion(int pointQuestion){
    		this.pointQuestion=pointQuestion;
    	}
     
    	public Collection<Reponse> getReponsePropose(){
            return reponsePropose;
        }
     
    	public void setReponsePropose(Collection<Reponse> reponsePropose){
            this.reponsePropose = reponsePropose;
        }
     
        public void addReponsePropose( Reponse reponsePropose ){
            this.getReponsePropose().add( reponsePropose );
            reponsePropose.setQuestion(this);
     
        }
     
     
    }

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonsoir,

    Le problème vient du fait que tu appelles la propriété questionD sur une instance de Question : Or, cette propriété n'a pas de getter ; tu as bien défini une méthode getQuestion() mais pas getQuestionD()

    Essaie en renommant les méthodes comme ceci :
    • getQuestion getQuestionD
    • setQuestion getQuestionD
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Mille Merci Nesmontou,

    Je ne dirais pas combien d'heure, j'ai passé dessus sans trouver la réponse.
    j'ai vraiment honte.

    Peux tu m'expliquer toutefois pourquoi cette relation svp?

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    En fait, quand tu fais cet appel ${question.questionD}, ce n'est pas l'attribut qui est lu en direct (puisque private) mais il y a un appel au getter correspondant getQuestionD().
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci * 1024............

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    bonjour

    jai un probleme quand je lance mon application (je développe sous eclipce europa jsp hibernete struts avec base de donnée Mysqls)

    quand j'essaye d'insérer des info pour quelle sois enregistré sur ma base de donnée,jai ce problème....

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.servlet.ServletException: L'exécution de la servlet a lancé une exception


    cause mère

    java.lang.ExceptionInInitializerError
    com.util_national.Hibernate_util.<clinit>(Hibernate_util.java:15)
    com.action.Boitemail_action.execute(Boitemail_action.java:29)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


    cause mère

    org.hibernate.MappingException: entity class not found: Boitemail
    org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99)
    org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    com.util_national.Hibernate_util.<clinit>(Hibernate_util.java:11)
    com.action.Boitemail_action.execute(Boitemail_action.java:29)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


    cause mère

    java.lang.ClassNotFoundException: Boitemail
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
    org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:96)
    org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    com.util_national.Hibernate_util.<clinit>(Hibernate_util.java:11)
    com.action.Boitemail_action.execute(Boitemail_action.java:29)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


    merci infiniment

  7. #7
    Membre à l'essai Avatar de z3bulon
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Décembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 13
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Nesmontou Voir le message
    Bonjour,

    En fait, quand tu fais cet appel ${question.questionD}, ce n'est pas l'attribut qui est lu en direct (puisque private) mais il y a un appel au getter correspondant getQuestionD().
    Merci Nesmontou !
    Grace à ton coup de main sur cette discussion, j'ai pu régler le soucis que j'ai rencontré lors d'un de mes développement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2010, 15h33
  2. [JSF] Intercepter l'erreur javax.el.PropertyNotFoundException
    Par spaw3003 dans le forum Spring Web
    Réponses: 0
    Dernier message: 29/03/2010, 16h38
  3. [MySQL] Supprimer les erreurs de syntaxe dues aux quotes
    Par gotenks dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2006, 16h10

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