2014-05-09 51 views
1

PrettyFaces不適合我。我試圖用簡單的方式,使用JSF 2.2,Servlet 3.1,PrettyFaces 3.3.3和WildFly8。我的項目設置如下顯示:JSF 2.2 + PrettyFaces 3.3.3 + WildFly8

Maven的依賴構件:

<?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> 

看到我的漂亮,faces.config文件的內容:

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

web.xml文件的內容:

<?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> 

當化妝部署到WildFly一切工作正常,你可以摘錄日誌中看到:

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. 

但是,當我嘗試訪問我頁面的URL,我得到沒有找到消息並顯示錯誤消息在日誌上。任何人都知道我做錯了什麼? 我遵循獲取staterd文檔(http://ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/GettingStarted.html)。

問候。

+0

你嘗試了哪個URL?你有沒有包含上下文路徑? PrettyFaces無法刪除上下文路徑。我只是問,因爲人們經常遇到這個問題。 – chkal

+0

是的,我確實包含了上下文路徑,如http:// localhost:8080/sample/home,但是如果我把/sample/home.xhtml對我來說工作的很好。 –

+0

此外,您正在使用PrettyFaces的過時版本 - 您應該使用http://ocpsoft.org/prettyfaces/ – Lincoln

回答

0

您提供的示例應用程序有兩個問題。

首先你的配置文件名稱不正確。您將配置文件命名爲pretty-faces.xml。正確的名字是pretty-config.xml。所以問題是PrettyFaces沒有找到你的文件,因此規則不起作用。

第二個問題是您使用了不正確的視圖ID。它必須是這樣的:

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

我希望這有助於。 :)