2011-09-30 54 views
1

我在Jboss 7.0.2「Arc」中出現錯誤,spring webflow 2.3.0.RELEASE with richfaces 4.0.0.Final (MyFaces的2.1.1):錯誤JSF 2.1:java.io.FileNotFoundException:*/*。xhtml在ExternalContext中找不到

12:34:19729嚴重[org.apache.myfaces.renderkit.ErrorPageWriter](HTTP - 127.0.0.1-8080-2)發生異常:javax.faces。 FacesException:在外部上下文中找不到作爲資源的java.io.FileNotFoundException:/sections/login/header.xhtml。

當我運行我的login.xhtml頁:

<ui:composition template="/WEB-INF/flows/template/default.xhtml" 
xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:rich="http://richfaces.org/rich"> 

<ui:define name="windowTitle"> 
#{msgs.loginTitle} 
</ui:define> 

<ui:define name="heading"> 
<ui:include src="/sections/login/header.xhtml"/> 
</ui:define> 

<ui:define name="sidebarLeft"> 
<ui:include src="/sections/login/sidebarLeft.xhtml"/> 
</ui:define> 

<ui:define name="content"> 
<h:form> 
    <h:panelGrid columns="2"> 
     #{msgs.namePrompt} 
     <h:inputText id="name" value="#{user.name}"/> 
     #{msgs.passwordPrompt} 
     <h:inputSecret id="password" value="#{user.password}"/> 
    </h:panelGrid> 
    <p> 
     <h:commandButton value="#{msgs.loginButtonText}" 
         action="planetarium"/> 
    </p> 
</h:form> 
</ui:define> 

header.xhtml的代碼是:

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets"> 
    <!-- <head><title>IGNORED</title></head> --> 
    <body> 
    <ui:composition> 
    <div class="header"> 
     #{msgs.loginHeading} 
    </div> 
    </ui:composition> 
    </body> 
    </html> 

結構的文件是這樣的:

WEB-INF/flows/inscripcion 
    inscripcion-flow.xhtml 
    inscripcion.xhtml  
    login.xhtml 

WEB-INF/flows/sections/login 
    header.xhtml 
    sidebarLeft.xhtml 

WEB-INF/flows/template 
    template.xhtml 

爲什麼會出現此錯誤?,我附上了我的Jboss提示

https://rapidshare.com/files/817066879/log12.zip Thnks。

回答

1

您似乎已將它放在WEB-INF/flows/sections/login/header.xhtml中。相應地修復src以匹配此項。

<ui:include src="/WEB-INF/flows/sections/login/header.xhtml"/> 
+0

Thnks,這個工作對我來說,還有另一種方式來調用這個(header.xhtml)??,並且是正確的WEB-INF中的這個位置,因爲在JEE 6教程說:網絡資源Web應用程序需要 才能正確呈現的任何軟件工件,包括圖像,腳本文件和任何用戶創建的組件庫。資源必須在標準位置收集,這可以是以下之一。 打包在Web應用程序根目錄中的資源必須位於Web應用程序根目錄的資源目錄的子目錄中: resources/resource-identifier。 –

+0

並且打包在Web應用程序的類路徑中的資源必須位於Web應用程序META-INF/resources/resource-identifier中的META-INF/resources目錄的子目錄中。 –

+0

另一種方法是使用相對於當前模板的路徑(即不用'/'開頭)。但不建議。資源是像CSS,JS,圖像等靜態文件。模板可以完美地放置在'/ WEB-INF'中。它將它們從直接訪問中隱藏起來(不能通過webbrowser打開'http:// localhost:8080/contextname/WEB-INF/*'文件)。 – BalusC

相關問題