2009-11-24 45 views
0

當我的JSF頁面呈現時,我收到以下消息。該頁面在控制檯中正確渲染但是下面不斷重複過無數次的消息...JSF頁面呈現錯誤:Faces上下文

INFO: ERROR: Unable to get Faces Context for session variable: localeBean 

11:54:27090 INFO [STDOUT] 2009年11月24日上午11點54分27秒com.web.util .faces.UtilFacesFuncs日誌 信息:很可能,您已經從非面(即Servlet)上下文請求Faces對象。

在我的JSF我usign localebean如下:

<f:view locale="#{localeBean.userLocaleLoggedIn}"> 

在faces-config文件我把它定義如下:

<managed-bean> 
    <description>Locale Bean</description> 
    <managed-bean-name>localeBean</managed-bean-name> 
    <managed-bean-class>com.mg.faces.LocaleBean</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

在我的課堂LocaleBean有一個方法getUserLocaleLoggedIn ()這是執行JSF頁面時執行的代碼:

<f:view locale="#{localeBean.userLocaleLoggedIn}"> 

O n調試我的jsp我可以看到被調用的方法,並且每次都很好,我一直調試我的jsp直到它創建頁腳,當它向瀏覽器渲染時,這些錯誤反覆拋出大約20+次。它只發生在tihs jsp上,因爲它是我添加的新的。我試圖與現有的jso進行比較,我看不到任何不同的東西,有誰知道我不願意看什麼?

任何幫助非常感謝。

謝謝。

問候

+0

此問題已解決,有些頁面特定的函數在引用此bean之前被調用,從而導致錯誤消失。 – msharma 2009-12-28 20:41:53

回答

0

對不起我的評論我在上面添加沒遇到過正確的,這裏是我在我的web.xml: 還有我的網址我用的是http://localhost.com/context/register/mypage.htm 我的文件夾下的寄存器這些JSP。我可以從寄存器文件夾 調用其他jsp,並且此錯誤不會出現....只是發生這個特殊的jsp,我已經添加。

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

我試圖加我完全映射但代碼標籤在這裏的工作方式,它不跨自從興田映射具有標籤來了...我試圖引用文字提供,但還是這個編輯器無法正確顯示我的映射,道歉!

任何想法如何我應該打電話給我的網址。謝謝。

+1

答案的順序是基於投票,所以請在將來編輯問題。 – McDowell 2009-11-24 22:23:45

0

該錯誤基本上意味着,請求URL(一個你在瀏覽器的地址欄看到,或它是用來包括/所述一個調度所需的頁面)不匹配url-patternFacesServlet的映射定義爲web.xml。你需要讓請求的URL匹配它來調用FacesServlet

因此,如果是例如下面的後綴模式(擴展名映射):

<url-pattern>*.jsf</url-pattern> 

,那麼你需要保證你的請求URL匹配它,即使用http://example.com/context/page.jsf代替http://example.com/context/page.jsp

,或者如果它例如以下前綴模式(目錄映射):

<url-pattern>/faces/*</url-pattern> 

,那麼你需要確保你的請求的URL看起來像http://example.com/context/faces/page.jsp而不是http://example.com/context/page.jsp

編輯:雖然我不會爲FacesServlet使用多個url-pattern S和只是堅持一個,但映射似乎已經很好了。畢竟,錯誤信息因此來自com.web.util.faces.UtilFacesFuncs。這看起來像一個本土的實用課程。那個班正在做什麼?這不僅僅是該實用程序類中的一個錯誤,例如它試圖在請求中訪問FacesContext太早或太遲?

+0

以我的web.xml我有以下映射: 面臨的Servlet /面/ * 面臨的Servlet * .faces 面臨的Servlet * .jsf 面Servlet * .htm msharma 2009-11-24 18:43:59