аннотированный ManagedBean в Richfaces?

#java #jsf-2 #richfaces

#java #jsf-2 #richfaces

Вопрос:

Я новичок в richfaces и хочу поддерживать класс bean, используя аннотации вместо конфигурации xml [точно так же, как JSF 2.0] Я использую richfaces 4.0 и включил все необходимые jar-файлы в свой путь сборки. но когда я попытался import javax.faces.bean.*; сделать это с помощью ошибки no package found. если я включу ядро JSF 2.0 jar из mojarra, оно отлично компилируется, но при отображении в виде файла war tomcat v7 выдает ошибку, и мой проект не выполняется.

пожалуйста, любая помощь.

P.S. без каких-либо компонентов проект работает хорошо

Комментарии:

1. tomcat v7 выдает ошибку, и мой проект не выполняется. Какая именно ошибка?

Ответ №1:

если я включу ядро JSF2.0 jar из mojarra, оно отлично компилируется

Это верно. Tomcat не поставляется с любыми библиотеками JSF из коробки. RichFaces4 также не поставляется с какой-либо конкретной реализацией JSF. У вас должны быть jsf-api.jar и jsf-impl.jar в /WEB-INF/lib папке.


но при отображении в виде файла war tomcat v7 выдает ошибку, и мой проект не выполняется.

Вам необходимо убедиться, что ваш /WEB-INF/faces-config.xml объявлен соответствующим спецификации JSF 2.0.

 <?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0"
>
    <!-- Your config here (if any) -->
</faces-config>
  

Вам также необходимо убедиться, что ваш /WEB-INF/web.xml объявленный файл соответствует спецификации Servlet 3.0 или, по крайней мере, спецификации Servlet 2.5.

 <?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0"
>
    <!-- Your config here (if any) -->
</web-app>
  

Комментарии:

1. Всегда пожалуйста. В будущем вам действительно следует включить полученную ошибку. Они предназначены не только для украшения, они рассказывают кое-что о причине проблемы. Если вы просто не смогли понять ошибку, вы должны опубликовать ее в своем вопросе, чтобы мы могли объяснить их для вас в терминах непрофессионала. Знаете, как только вы поймете ошибку, а следовательно, и причину, решение должно говорить само за себя.