2014-07-17 108 views
0

獲取一個奇怪的錯誤。未找到JSF2文件異常

我在WebContent幾個不同的文件。

WebContent/page1.xhtml 
WebContent/page2.xhtml 
WebContent/page3.xhtml 

我有我的web.xml文件中建立這樣的:

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
... 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
... 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/01/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/02/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
<url-pattern>/03/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/04/*</url-pattern> 
</servlet-mapping> 

當運行Web服務器(JBoss的EAP 6.1),我可以得到/myapp/01/page1.xhtml/myapp/01/page2.xhtml等,這似乎是除了/myapp/03/之外的所有情況。

對於/myapp/03/,我可以得到page2.xhtml就好了,但是當我嘗試去page1.xhtml時,我得到一個java.io.FileNotFoundException。我能到page1.xhtml從所有其他組合(/myapp/01//myapp/02//myapp/04/等一路10)的就好了。

所有的/myapp/##/東西,經過同樣的過濾器,並java.io.FileNotFoundException正在發生的事情時,chain.doFilter()方法被調用,但它對於所有其他部分的正常工作,所以我不知道它可能是在那裏或不。

任何想法將不勝感激。

回答

1

這個問題的根本原因是路徑錯誤。該網站設置爲使用多個包含文件,其中一些路徑是通過代碼設置的。我需要檢查每條路徑以確保找到正確的文件。

-1

不要假設有權限,錯字,類路徑,或任何頁面的問題問題呢?

+0

我希望是那樣。在每種情況下都是完全相同的頁面。它適用於'myapp \ 01 \',但不適用於'myapp \ 03 \'代碼。 – Ruminator

+0

如果你想寫一些關於確定檢查所有'ui:include'paths的正式答案(或者更新這個),我會給你信任。頁面的一部分動態地爲頁面的一部分構建'ui:include'路徑,並且有人將動態部分更新到錯誤的位置。 – Ruminator