2015-09-26 59 views
0

我想用BootsFaces 0.7測試一個JSF 2.2項目。 該項目像GlassFish 3和PrimeFaces 5.2上的魅力一樣運行。 但頁面,任何標籤從BootsFaces libraray使用,像<b:well>上,我得到以下異常:javax.faces.FacesException:表達式錯誤:命名對象:net.bootsfaces.layout.Well找不到

javax.faces.FacesException: Expression Error: Named Object: net.bootsfaces.layout.Well not found

這是怎麼造成的,我該如何解決呢?

+0

您能否翻譯錯誤信息? –

+0

未檢測到名爲「net.bootsfaces.layout.Well」的對象 –

+0

在webapp的web.xml中是否有'metadata-complete =「true」'?至於本地化錯誤,請將您的開發環境更改爲英文。將英文錯誤信息複製到搜索引擎中時,您將獲得更多線索。 – BalusC

回答

0

Thanks to this answer,我終於找到了我的問題的解決方案: 我不得不把靴子面臨jar文件在/WEB-INF/lib目錄。 我永遠不會厭倦這樣說:非常感謝BalusC

+0

糟糕 - 它只是沒有我不介意你可能會在/ WEB-INF/lib文件夾中沒有BootsFaces.jar的情況下嘗試:)。我會將其添加到我的標準補救措施清單中。感謝您回報! –

+0

但對我來說仍然很奇怪,因爲我始終都有primefaces,並且在/ domain/lib中過去使用了richfaces,而不是/ WEB-INF/lib,並且所有內容都運行良好。這個bootsfaces庫改變了什麼? – Hicham

+0

啊,我明白了。我總是使用Tomcat,所以我不知道/ domain/lib文件夾。實際上,PrimeFaces和BootsFaces的初始化方式沒有技術上的區別(至少我沒有意識到)。也許答案很簡單:大多數應用程序服務器按字母順序加載它們的庫。所以BootsFaces在Mojarra或MyFaces之前加載,而PrimeFaces和RichFaces之前加載了MyFaces。但這只是一個狂野的鏡頭。現在我知道您使用的是Glassfish,我們可以測試BootsFaces與Glassfish的兼容性。感謝提示! –

1

更新2015年10月5日: 如果您碰巧使用Spring Boot和Mojarra,請返回Mojarra 2.2.10。較新的版本被破壞,並且在Spring Boot故障單https://github.com/spring-projects/spring-boot/issues/3216已解決之前它們將保持中斷狀態。或者,您可以嘗試Apache MyFaces,如http://www.beyondjava.net/blog/newsflash-running-example-of-spring-boot-jsf/中所述。

錯誤消息表示無法創建類net.bootsfaces.layout.Well。您沒有給出堆棧跟蹤的其餘部分,但最有可能的錯誤是在名爲newThing()的方法中引發的。這很奇怪,因爲JSF已經知道b:well是由net.bootsfaces.layout.Well實現的。換句話說:JSF設法讀取配置文件,但未能創建對象。我最好的猜想是你的類路徑有問題,或者你的BootsFaces.jar有損壞。

我建議你嘗試執行行new net.bootsfaces.layout.Well()進行測試。如果我的理論是正確的,它應該導致ClassNotFoundException

另一種可能性是您的運行時環境。你使用Spring Boot嗎?這個理論已經被巴西開發者發現。也許這會導致錯誤。

與此同時,我們的錯誤跟蹤器上有兩張票:https://github.com/TheCoder4eu/BootsFaces-OSP/issues/188https://github.com/TheCoder4eu/BootsFaces-OSP/issues/189

+0

謝謝你的建議。新的net.bootsfaces.layout。那麼()沒有拋出任何異常,並且堆棧跟蹤的第一部分是: 嚴重:JSF1068:不可能的文件類型est net.bootsfaces.layout.Well 嚴重:嚴重異常! javax.faces.FacesException:ERREUR D'表達:客體nommé«net.bootsfaces.layout.Well»非détecté \t在com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1912) \t在玉米.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1166) – Hicham

+0

也就是說,newThing()已被調用,但返回null。 Bon,c'est vrai,c'est un錯誤嚴重。此刻,我感到困惑。如果您在https://github.com/stephanrauh/BootsFaces-Examples嘗試我的演示項目之一,會發生什麼情況?例如,https://github.com/stephanrauh/BootsFaces-Examples/tree/master/ModalDialogs? –

+0

也許錯誤是由您的運行時環境引起的 - 可能是Spring Boot?偉大的文章,斯蒂芬! –

相關問題