我在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。
Thnks,這個工作對我來說,還有另一種方式來調用這個(header.xhtml)??,並且是正確的WEB-INF中的這個位置,因爲在JEE 6教程說:網絡資源Web應用程序需要 才能正確呈現的任何軟件工件,包括圖像,腳本文件和任何用戶創建的組件庫。資源必須在標準位置收集,這可以是以下之一。 打包在Web應用程序根目錄中的資源必須位於Web應用程序根目錄的資源目錄的子目錄中: resources/resource-identifier。 –
並且打包在Web應用程序的類路徑中的資源必須位於Web應用程序META-INF/resources/resource-identifier中的META-INF/resources目錄的子目錄中。 –
另一種方法是使用相對於當前模板的路徑(即不用'/'開頭)。但不建議。資源是像CSS,JS,圖像等靜態文件。模板可以完美地放置在'/ WEB-INF'中。它將它們從直接訪問中隱藏起來(不能通過webbrowser打開'http:// localhost:8080/contextname/WEB-INF/*'文件)。 – BalusC