2011-11-13 39 views
1

我們的應用程序是基於JSF2的,我們正在爲此設計一個異常處理。我嘗試使用在faces-config.xml中配置的JSF2異常處理框架。當動作方法引發異常時,它顯示爲PropertyNotFoundException

當我從支持bean(在Facelets頁面中引用)中引發一個空指針時,它將作爲javax.el.PropertyNotFoundException來處理異常,並且它也沒有任何其他堆棧跟蹤。

有什麼辦法來得到異常和堆棧跟蹤的確切原因?

回答

1

當從複合組件內部調用動作方法時會發生這種情況。這已經被報告爲JSF issue 1806,它計劃爲JSF 2.2修復。

到目前爲止,在異常處理程序中無法獲取根本原因,因爲它完全被吞下。最好的辦法是使用單獨的記錄器,或者作爲一種詭計多端的解決方法,將自己的異常作爲請求屬性傳遞。

+0

感謝BalusC,JSF2.2發佈時的任何想法。任何有關jsf框架記錄器的建議...... – user684434

+0

每個鏈接的jsf問題,自2.0.4-b11以來,這個問題已得到修復'修復版本:\t 2.0.4-b11,2.1.10,2.2.0-m04' – Lucas

0

啓用開發模式通常會提供更好的錯誤信息。

將以下內容添加到您的web.xml中。

<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Development</param-value> 
</context-param> 

但是,您應該關閉您的生產。

+0

我們在web.xml中有javax.faces.PROJECT_STAGE作爲開發。但是它仍然被視爲「facesexception」而不是實際的例外,是否還有其他配置需要設置。 – user684434

+0

您應該檢查BalusC的錯誤鏈接。不過你說的支持bean而不是複合組件。當我們遇到問題時,我們通常會得到我們的堆棧跟蹤。 –

+0

在你打印堆棧跟蹤......的支持bean中...... – user684434

相關問題