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 :

Tutoriel JSF, Spring et Hibernate


Sujet :

JSF Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Tutoriel JSF, Spring et Hibernate
    Bonjour,

    Je suis le tutoriel de Alexis Hassler "Tutoriel JSF, Spring et Hibernate" et j'en suis à l'étape de JSF.

    Lorsque je lance courselist.jsf dans le navigateur j'obtiens l'erreur suivante :
    org.apache.jasper.JasperException: An exception occurred processing JSP page /courselist.jsp at line 20

    17: <h:form id="mainForm">
    18:
    19: <h:panelGrid columns="1">
    20: <rich:scrollableDataTable id="courseTable"
    21: binding="#{courseBean.courseTable}" value="#{courseBean.courseList}"
    22: var="course" width="300px" height="200px">
    23: <%-- <a4j:support event="onRowDblClick" <%-- action="#{courseBean.viewDetail}" --%> /> --%>

    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:537)
    com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:275)
    com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:118)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
    org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
    org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
    org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    org.ajax4jsf.Filter.doFilter(Filter.java:175)


    cause mère

    javax.faces.FacesException: java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.component.UIComponent
    com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1694)
    com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:429)
    javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:222)
    javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:486)
    javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:670)
    javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1142)
    org.apache.jsp.courselist_jsp._jspx_meth_rich_005fscrollableDataTable_005f0(courselist_jsp.java:271)
    org.apache.jsp.courselist_jsp._jspx_meth_h_005fpanelGrid_005f0(courselist_jsp.java:225)
    org.apache.jsp.courselist_jsp._jspx_meth_h_005fform_005f0(courselist_jsp.java:181)
    org.apache.jsp.courselist_jsp._jspx_meth_f_005fview_005f0(courselist_jsp.java:136)
    org.apache.jsp.courselist_jsp._jspService(courselist_jsp.java:98)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:537)
    com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:275)
    com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:118)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
    org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
    org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
    org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    org.ajax4jsf.Filter.doFilter(Filter.java:175)


    cause mère

    java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.component.UIComponent
    com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1683)
    com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:429)
    javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:222)
    javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:486)
    javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:670)
    javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1142)
    org.apache.jsp.courselist_jsp._jspx_meth_rich_005fscrollableDataTable_005f0(courselist_jsp.java:271)
    org.apache.jsp.courselist_jsp._jspx_meth_h_005fpanelGrid_005f0(courselist_jsp.java:225)
    org.apache.jsp.courselist_jsp._jspx_meth_h_005fform_005f0(courselist_jsp.java:181)
    org.apache.jsp.courselist_jsp._jspx_meth_f_005fview_005f0(courselist_jsp.java:136)
    org.apache.jsp.courselist_jsp._jspService(courselist_jsp.java:98)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:537)
    com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:275)
    com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:118)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
    org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
    org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
    org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    org.ajax4jsf.Filter.doFilter(Filter.java:175)
    Voici mon courselist.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
            <rich:scrollableDataTable id="courseTable"
                    binding="#{courseBean.courseTable}" value="#{courseBean.courseList}"
                    var="course" width="300px" height="200px">
                    <%-- <a4j:support event="onRowDblClick" <%-- action="#{courseBean.viewDetail}" --%> /> --%>
                    <rich:column id="code" width="60px">
                        <f:facet name="header">
                            <h:outputText value="Code" />
                        </f:facet>
                        <h:outputText value="#{course.code}" />
                    </rich:column>
                    <rich:column id="name" width="200px">
                        <f:facet name="header">
                            <h:outputText value="Nom" />
                        </f:facet>
                        <h:outputText value="#{course.name}" />
                    </rich:column>
                    <rich:column id="length" width="60px">
                        <f:facet name="header">
                            <h:outputText value="Longueur" />
                        </f:facet>
                        <h:outputText value="#{course.length}" />
                    </rich:column>
     
                </rich:scrollableDataTable>
    Et le coursebean.java
    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
    public class CourseBean implements Serializable {
     
        @Autowired
        private transient courseService courseService;
        private transient HtmlScrollableDataTable courseTable;
     
        private List<Course> courseList;
        private Course currentCourse;
     
        @PostConstruct
        public void init() {
            courseList = courseService.findAll();
        }
     
     
        public String update() {
            courseService.save(currentCourse);
            init();
            return null;
        }
     
        public HtmlScrollableDataTable getCourseTable() {
            return courseTable;
        }
     
        public void setCourseTable(HtmlScrollableDataTable courseTable) {
            this.courseTable = courseTable;
        }
     
        public List<Course> getCourseList() {
            return courseList;
        }
     
        public void setCourseList(List<Course> courseList) {
            this.courseList = courseList;
        }
     
        public Course getCurrentCourse() {
            return currentCourse;
        }
     
        public void setCurrentCourse(Course currentCourse) {
            this.currentCourse = currentCourse;
        }
     
    }
    Quelqu'un saurait-il m'expliquer d'où peut venir l'erreur ?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    soit tu changes ton id="", car cette erreur apparait lorsque tu essaie de mettre dans un binding une proprieté de type String, appremment il doit le confondre a ton id.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    essaie en remplacant tes #{ par des ${

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    j'ai contourné à ce probleme en mettant le code suivant :

    <rich:scrollableDataTable
    value="#{courseBean.getCourseList()}"
    var="course" width="300px" >

    mais je recois une table vive ,ce qui vaut dire que mnt j'ai un probleme dans mon fichier application-context.xml :

    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="courseService" class="Service.CourseServiceImpl">
    </bean>

    <bean id="courseBean" class="Web.CourseBean" scope="session">
    <property name="service">
    <ref bean="courseService"/>
    </property>
    </bean>

    eclipse m'affiche l'erreur suivante :

    Error creating bean with name 'courseBean' defined in ServletContext resource [/WEB-INF/application-context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'service' of bean class [Web.CourseBean]: Bean property 'service' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    ton bean n'a pas de propriété appelée "service", en tout cas pas d'après spring ni d'après le code que tu nous a montré plus haut.

Discussions similaires

  1. Réponses: 14
    Dernier message: 05/03/2015, 16h50
  2. Recherche sources JSF + Spring 3 + Hibernate / JPA
    Par pschiit dans le forum Spring
    Réponses: 2
    Dernier message: 28/11/2012, 16h09
  3. Tutoriel JSF, Spring et Hibernate
    Par samisum41 dans le forum JSF
    Réponses: 4
    Dernier message: 13/07/2012, 21h08
  4. Réponses: 3
    Dernier message: 23/01/2012, 17h13
  5. Tutoriel JSF + Spring + Richfaces
    Par gotteserbin dans le forum JSF
    Réponses: 2
    Dernier message: 05/11/2010, 12h45

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