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

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

我正在尝试使用 BootsFaces 0.7 测试 JSF 2.2 项目。 该项目 运行 就像 GlassFish 3 和 PrimeFaces 5.2 上的魅力一样。 但是在使用 BootsFaces 库中的任何标记的页面上,如 <b:well>,我得到以下异常:

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

这是怎么造成的,我该如何解决?

2015 年 10 月 5 日更新: 如果你碰巧使用 Spring Boot 和 Mojarra,请回到 Mojarra 2.2.10。较新的版本已损坏,并且在 Spring 引导票证 https://github.com/spring-projects/spring-boot/issues/3216 is resolved. Alternatively, you may try Apache MyFaces, as described in http://www.beyondjava.net/blog/newsflash-running-example-of-spring-boot-jsf/.

之前它们将一直损坏

错误信息表示无法创建classnet.bootsfaces.layout.Well。您没有提供其余的堆栈跟踪信息,但很可能是在名为 newThing() 的方法中引发了错误。这很奇怪,因为 JSF 已经知道 b:well 是由 net.bootsfaces.layout.Well 实现的。换句话说:JSF 设法读取配置文件,但未能创建对象。我最好的猜测是你的 class 路径有问题,或者你有一个损坏的 BootsFaces.jar。

建议您尝试执行new net.bootsfaces.layout.Well()行进行测试。如果我的理论是正确的,结果应该是 ClassNotFoundException.

另一种可能是您的运行时环境。你用Spring开机吗?这个理论是由一位巴西开发者提出的。也许这会导致错误。

同时,我们的错误跟踪器上有两张票:https://github.com/TheCoder4eu/BootsFaces-OSP/issues/188 and https://github.com/TheCoder4eu/BootsFaces-OSP/issues/189

,我终于找到了解决问题的方法: 我不得不将 boots faces jar 文件放在 /WEB-INF/lib 目录中。 我永远不会厌倦说:非常感谢 BalusC