2014-05-09 6 views
1

PrettyFaces가 나를 위해 작동하지 않습니다. JSF 2.2, Servlet 3.1, PrettyFaces 3.3.3 및 WildFly8과 같은 간단한 방식을 사용하려고합니다. 내 프로젝트 설정 아래에 보여대로 :JSF 2.2 + PrettyFaces 3.3.3 + WildFly8

메이븐 의존성 이슈 :

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

,

메이크업은 당신이 조각 로그에서 볼 수 있듯이 모두가 잘 작동 제이보스로 배포 :

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가 파일을 찾지 못해 규칙이 작동하지 않는다는 것입니다.

두 번째 문제는 잘못된 view-id를 사용했다는 것입니다. 그것은 다음과 같아야합니다 :

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

나는 이것이 도움이되기를 바랍니다. :)