我們的應用程序是基於JSF2的,我們正在爲此設計一個異常處理。我嘗試使用在faces-config.xml
中配置的JSF2異常處理框架。當動作方法引發異常時,它顯示爲PropertyNotFoundException
當我從支持bean(在Facelets頁面中引用)中引發一個空指針時,它將作爲javax.el.PropertyNotFoundException
來處理異常,並且它也沒有任何其他堆棧跟蹤。
有什麼辦法來得到異常和堆棧跟蹤的確切原因?
我們的應用程序是基於JSF2的,我們正在爲此設計一個異常處理。我嘗試使用在faces-config.xml
中配置的JSF2異常處理框架。當動作方法引發異常時,它顯示爲PropertyNotFoundException
當我從支持bean(在Facelets頁面中引用)中引發一個空指針時,它將作爲javax.el.PropertyNotFoundException
來處理異常,並且它也沒有任何其他堆棧跟蹤。
有什麼辦法來得到異常和堆棧跟蹤的確切原因?
當從複合組件內部調用動作方法時會發生這種情況。這已經被報告爲JSF issue 1806,它計劃爲JSF 2.2修復。
到目前爲止,在異常處理程序中無法獲取根本原因,因爲它完全被吞下。最好的辦法是使用單獨的記錄器,或者作爲一種詭計多端的解決方法,將自己的異常作爲請求屬性傳遞。
啓用開發模式通常會提供更好的錯誤信息。
將以下內容添加到您的web.xml中。
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
但是,您應該關閉您的生產。
我們在web.xml中有javax.faces.PROJECT_STAGE作爲開發。但是它仍然被視爲「facesexception」而不是實際的例外,是否還有其他配置需要設置。 – user684434
您應該檢查BalusC的錯誤鏈接。不過你說的支持bean而不是複合組件。當我們遇到問題時,我們通常會得到我們的堆棧跟蹤。 –
在你打印堆棧跟蹤......的支持bean中...... – user684434
感謝BalusC,JSF2.2發佈時的任何想法。任何有關jsf框架記錄器的建議...... – user684434
每個鏈接的jsf問題,自2.0.4-b11以來,這個問題已得到修復'修復版本:\t 2.0.4-b11,2.1.10,2.2.0-m04' – Lucas