javax.faces.FacesException: ошибка выражения: Именованный объект: net.bootsfaces.layout.Не найдено
Я пытаюсь протестировать проект JSF 2.2 с BootsFaces 0.7. Проект работает как GlassFish 3 и PrimeFaces 5.2. Но на странице, где используется любой тег из библиотеки BootsFaces, например <b:well>
Я получаю следующее исключение:
javax.faces.FacesException: ошибка выражения: Именованный объект: net.bootsfaces.layout.Не найдено
Как это вызвано и как я могу решить это?
2 ответа
Благодаря этому ответу я наконец-то нашел решение своей проблемы: мне пришлось положить файл /WEB-INF/lib
каталог. Я никогда не устану это говорить: большое спасибо BalusC
Обновление 05 октября 2015: Если вы используете 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 удалось прочитать файл конфигурации, но не удалось создать объект. Я думаю, что с вашим classpath что-то не так или что у вас поврежденный 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.