我正在尝试使用 BootsFaces 0.7 测试 JSF 2.2 项目。该项目在 GlassFish 3 和 PrimeFaces 5.2 上运行得非常好。但是在使用 BootsFaces 库中的任何标签的页面上,例如<b:well>
,我得到以下异常:
javax.faces.FacesException:表达式错误:命名对象:net.bootsfaces.layout.Well 未找到
这是如何引起的,我该如何解决?
我正在尝试使用 BootsFaces 0.7 测试 JSF 2.2 项目。该项目在 GlassFish 3 和 PrimeFaces 5.2 上运行得非常好。但是在使用 BootsFaces 库中的任何标签的页面上,例如<b:well>
,我得到以下异常:
javax.faces.FacesException:表达式错误:命名对象:net.bootsfaces.layout.Well 未找到
这是如何引起的,我该如何解决?
感谢这个答案,我终于找到了解决问题的方法:我不得不将 boots faces jar 文件放在/WEB-INF/lib
目录中。我永远不会厌倦说:非常感谢BalusC
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/188和https://github.com/TheCoder4eu/BootsFaces-OSP/issues/189。