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 :

[JSF] Probleme de lancement


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut [JSF] Probleme de lancement
    Bonjour a tous,

    Voila étant un bon débutant dans les JSF je rencontre un problème de déploiement.

    J’ai télécharger le JSF 1.1 et je m’aide du tuto JSF KickStart: A Simple JavaServer Faces Application que lon trouve ici ( http://www.exadel.com/tutorial/jsf/j...ickstart.html).

    Je rencontre déjà un problème quand j’essaie de déployer le .war des exemples que l’on trouve dans la JSF 1.1 et j’ai aussi un problème quand j’essaie de faire fonctionner l’exemple du tuto.

    Alors j’utilise eclipse 3.2 et Tomcat 5.5 en Win XP.
    Problèmes 1, le déploiement d’un war.
    Il me met :
    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
     
    org.apache.jasper.JasperException: Exception in JSP: /index.jsp:55
     
    52: 
    53: -->
    54: 
    55: <jsp:forward page="guess/greeting.jsp" />
    56: </body>
    57: </html>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    cause mère 
    javax.servlet.ServletException: "Servlet.init()" pour la servlet Faces Servlet a généré une exception
    	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:691)
    	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:661)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    cause mère 
    java.lang.NullPointerException
    	javax.faces.webapp.FacesServlet.init(FacesServlet.java:144)
    	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:691)
    	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:661)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    pour le .war : jsf-guessNumber.

    Probleme 2 :
    Essaie de l’exemple du tuto, la j ai carement un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Etat HTTP 404 - /TestJSF/
    ________________________________________
    type Rapport d'état
    message /TestJSF/
    description La ressource demandée (/TestJSF/) n'est pas disponible.
    Pouvez vous m’aidée à résoudre ces problèmes car je ne vois pas ce que j’ai oublie ou ce qui cloche.

    Merci de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 50
    Par défaut
    Mmmmh. Alors, deja tu dois initialiser ta servlet JSF. En effet, si tu ne la charge pas avant de demader ta page JSF, tu n'as pas acces au context JSF et autres choses utiles.

    Donc, tu dois faire transiter tout le traffic JSF vers elle en ajoutant un url-pattern approprie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <servlet-mapping>
    <servlet-name>ta Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    Pour dire que ta servlet va capturer tout ce qui passe par /faces/* .Puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:forward page="/faces/greeting.jsp" />
    La, trois remarques :

    - l'URL fournie dans ton <jsp:forward> doit commencer par un slash, meme si elle est relative a ton contexte. Et tu dois bien preciser que tu veux appeller ta servlet JSF en reprenant son URL-pattern.
    - le contexte est l'URL de base par laquelle ta servlet est accessible, donc dans ton cas : http://tonserveur/TestJSF/faces
    - quand tu vas faire ton forward, l'URL appellee sera donc : http://tonserveur/TestJSF/faces/greeting.jsp

    Si tu as envie de faire un forward vers /guess, pourquoi pas, mais alors l'URL-pattern de ta servlet doit etre guess aussi. OK ?

    Enfin, reponse au probleme 2 : tu obtiens une 404 qui signifie que la ressource n'est pas disponible (je ne fais que lire ton copie / colle !). Et c'est normal, vu que ta servlet JSF n'est pas chargee... Ca devrait se regler avec ce que je viens de t'envoyer.

    HTH,

    AlienQueen

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut
    Pour le 1er problème, je ne comprends toujours pas pourquoi il ne fonctionne pas, c est un .war qui viens directement des exemple se trouvant dans la lib des jsf 1.1 que j’ai download du site de sun. Je le déploie directement donc il devrais fonctionner vu que c est eu qui l’on fais. Mais chez moi non, il me donne directement l’erreur cité plus haut.

    http://127.0.0.1:8080/jsf-guessNumber/ et même en essayant comme ceci
    http://127.0.0.1:8080/jsf-guessNumber/faces/ cela ne fonctionne pas.

    Pour le problème 2, il y a du changement, j’avais mal mis mon index.jsp, il n’était pas dans la racine du Webcontent. Mais il me donne une autre 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
    43
    44
    45
    46
     
    orrg.apache.jasper.JasperException: Exception in JSP: /index.jsp:13
     
    10: </head>
    11: <body>
    12: Hello World
    13: <h:commandLink action="inputname">GO test JSF</h:commandLink>
    14: </body>
    15: </html>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    cause mère
     
    javax.servlet.ServletException: Cannot find FacesContext
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:73)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    cause mère
     
    javax.servlet.jsp.JspException: Cannot find FacesContext
    	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:405)
    	com.sun.faces.taglib.html_basic.CommandLinkTag.doStartTag(CommandLinkTag.java:480)
    	org.apache.jsp.index_jsp._jspx_meth_h_005fcommandLink_005f0(index_jsp.java:89)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:63)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.23.
    Voici mon web.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4"
    	xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
    	<display-name>TestJSF</display-name>
    	<context-param>
    		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    		<param-value>server</param-value>
    	</context-param>
     
    	<context-param>
    		<param-name>javax.faces.CONFIG_FILES</param-name>
    		<param-value>/WEB-INF/faces-config.xml</param-value>
    	</context-param>
     
    	<listener>
    		<listener-class>
    			com.sun.faces.config.ConfigureListener
    		</listener-class>
    	</listener>
     
    	<!-- Faces Servlet -->
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
     
    	<!-- Faces Servlet Mapping -->
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
     
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>default.html</welcome-file>
    		<welcome-file>default.htm</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    et voici le face-config.xml
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE faces-config PUBLIC
      "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
      "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
     
    <faces-config>
    	<navigation-rule>
    		<navigation-case>
    			<from-outcome>inputname</from-outcome>
    			<to-view-id>jsp/inputname.jsp</to-view-id>
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>greeting</from-outcome>
    			<to-view-id>jsp/greeting.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    	<managed-bean>
    		<managed-bean-name>personBean</managed-bean-name>
    		<managed-bean-class>test.jsf.PersonBean</managed-bean-class>
    		<managed-bean-scope>request</managed-bean-scope>
    	</managed-bean>
    </faces-config>
    Et j'ai aussi autre chose de bizarre, dans ma jsp je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:inputText value="#{personBean.personName}" />
    mais il me dis que personBean cannot be resolved, pourtant il est déclaré dans le faces-config.xml. Pourquoi me met'il cela ??
    D'ou viens les probléme car comme je le dis je début dans les JSF.

    Merci de votre aide

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Cannot find FacesContext signifie typiquement que tu ne passe pas par la FacesServlet.


    d'après ton web.xml

    ton URL doit être de la forme
    http://serveur/root/fichier.jsf

    pour accéder à fichier.jsp contenant des éléments JSF

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut
    J'ai edité mon post en même temps que ta reponse mad-math,

    maintenant j ai une erreur dans mon index.jsp,

    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
     
    orrg.apache.jasper.JasperException: Exception in JSP: /index.jsp:13
     
    10: </head>
    11: <body>
    12: Hello World
    13: <h:commandLink action="inputname">GO test JSF</h:commandLink>
    14: </body>
    15: </html>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    cause mère
     
    javax.servlet.ServletException: Cannot find FacesContext
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:73)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    cause mère
     
    javax.servlet.jsp.JspException: Cannot find FacesContext
    	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:405)
    	com.sun.faces.taglib.html_basic.CommandLinkTag.doStartTag(CommandLinkTag.java:480)
    	org.apache.jsp.index_jsp._jspx_meth_h_005fcommandLink_005f0(index_jsp.java:89)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:63)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    et dans le faces-config.xml
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE faces-config PUBLIC
      "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
      "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
     
    <faces-config>
    	<navigation-rule>
    		<navigation-case>
    			<from-outcome>inputname</from-outcome>
    			<to-view-id>/jsp/inputname.jsp</to-view-id>
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>greeting</from-outcome>
    			<to-view-id>/jsp/greeting.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    	<managed-bean>
    		<managed-bean-name>personBean</managed-bean-name>
    		<managed-bean-class>test.jsf.PersonBean</managed-bean-class>
    		<managed-bean-scope>request</managed-bean-scope>
    	</managed-bean>
    </faces-config>
    un lien ne fonction pas comme cela en jsf ??

    et pour mon personBean cannot be resolved, quelqu'un sais pourquoi.

    Merci.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tu dois définir une vue

    balises

    <f:view> et </f:view>

    qui englobent l'ensemble de tes formulaires.

    De plus ton bouton doit être inclus entre <h:form> et <h:form>

    bref un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html>
    <head>
    </head>
    <f:view>
    <body>
    Hello World
    <h:form>
    <h:commandLink action="inputname">GO test JSF</h:commandLink>
    </h:form>
    </body>
    </f:view>
    </html>
    pour l'attribut action du bouton :
    - Soit tu met un binding vers une méthode de type action d'un managed bean
    - Soit directement un strig (comme ici) et c'est considéré comme Outcome

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

Discussions similaires

  1. [Système][Process]Probleme de lancement d'un .sh
    Par jool dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 04/05/2005, 11h58
  2. [NetBeans] Probleme au lancement NetBeans
    Par boubou11 dans le forum NetBeans
    Réponses: 2
    Dernier message: 21/04/2005, 11h38
  3. [Kylix] Problème au lancement d'un programme
    Par jeanbi dans le forum EDI
    Réponses: 7
    Dernier message: 19/01/2005, 23h00
  4. [Linux]probleme au lancement d'eclipse sur mandrake 10
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 19h34
  5. [Tomcat] [eclipse] probleme au lancement de mes jsp
    Par sandusa dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/05/2004, 14h59

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