2014-05-09 1 views
1

PrettyFaces ne fonctionne pas pour moi. J'essaie d'utiliser de manière simple, avec JSF 2.2, Servlet 3.1, PrettyFaces 3.3.3 et WildFly8. Mes paramètres du projet sont comme montré ci-dessous:JSF 2.2 + PrettyFaces 3.3.3 + WildFly8

Maven son artefact:

<dependency> 
     <groupId>com.ocpsoft</groupId> 
     <artifactId>prettyfaces-jsf2</artifactId> 
     <version>3.3.3</version> 
</dependency> 

Le contenu du fichier web.xml:

<?xml version="1.0"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
version="3.1"> 

<context-param> 
    <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name> 
    <param-value>true</param-value> 
</context-param> 

<context-param> 
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
    <param-value>.xhtml</param-value> 
</context-param> 

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>client</param-value> 
</context-param> 

<servlet> 
    <servlet-name>FacesServlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>FacesServlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

<session-config> 
    <session-timeout>15</session-timeout> 
</session-config> 

</web-app> 

Voir le contenu de mon dossier assez-faces.config:

<?xml version="1.0" encoding="UTF-8"?> 
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.3" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.3 http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.3.xsd"> 

<url-mapping id="home"> 
    <pattern value="/home" /> 
    <view-id value="/home.xhtml" /> 
</url-mapping> 

Lorsqu'une marque déploie en wildfly tout fonctionne très bien, comme vous pouvez le voir dans le journal d'extrait:

21:42:34,525 INFO (DeploymentScanner-threads - 2) JBAS015003: Found populis.war in deployment directory. To trigger deployment create a file called populis.war.dodeploy 
21:42:34,531 INFO (MSC service thread 1-4) JBAS015876: Starting deployment of "populis.war" (runtime-name: "populis.war") 
21:42:34,665 INFO (MSC service thread 1-5) JBAS016002: Processing weld deployment populis.war 
21:42:34,691 INFO (MSC service thread 1-5) JBAS016005: Starting Services for CDI deployment: populis.war 
21:42:34,705 INFO (MSC service thread 1-6) JBAS016008: Starting weld service for deployment populis.war 
21:42:34,993 INFO (MSC service thread 1-1) Initializing Mojarra 2.2.5-jbossorg-3 20140128-1641 for context '/populis' 
21:42:35,206 INFO (MSC service thread 1-1) JBAS017534: Registered web context: /populis 
21:42:35,218 INFO (DeploymentScanner-threads - 1) JBAS018559: Deployed "populis.war" (runtime-name : "populis.war") 
21:43:21,412 INFO (default task-11) PrettyFilter starting up... 
21:43:21,452 INFO (default task-11) PrettyFilter initialized. 

Mais quand je tente d'accéder à l'URL de ma page, je reçois pas trouvé message et aucun message d'erreur est affiché sur le journal. Quelqu'un a une idée de ce que je fais de mal? Je suis la documentation get staterd (http://ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/GettingStarted.html).

Cordialement.

+0

Quelle URL as-tu essayé? Avez-vous inclus le chemin du contexte? PrettyFaces ne peut pas supprimer le chemin du contexte. Je demande juste parce que les gens rencontrent souvent ce problème. – chkal

+0

Oui, j'ai inclus le chemin du contexte, comme http: // localhost: 8080/sample/home, mais si je mets /sample/home.xhtml cela fonctionne très bien pour moi. –

+0

En outre, vous utilisez une version obsolète de PrettyFaces - vous devriez utiliser les informations trouvées sur http://ocpsoft.org/prettyfaces/ – Lincoln

Répondre

0

L'exemple d'application que vous avez fourni contient deux problèmes. Tout d'abord, votre fichier de configuration a un nom incorrect.

Vous avez nommé le fichier de configuration pretty-faces.xml. Le nom correct est pretty-config.xml. Le problème était que PrettyFaces ne trouvait pas votre fichier et que les règles ne fonctionnaient pas.

Le deuxième problème est que vous avez utilisé un ID de vue incorrect. Il doit être comme ceci:

<url-mapping id="home"> 
    <pattern value="/home" /> 
    <view-id value="/home.jsf" />  <!-- note the .jsf here --> 
</url-mapping> 

J'espère que cela aide. :)

Questions connexes