Для начала измените этот раздел ...
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
сервлет Faces должен быть сопоставлен с .jsf или только с /face / . Затем отключите встроенный в JSF2 сервлет Faces ...
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>
А теперь включите оригинальную флягу Facelets ... она должна быть как версия 1.1.15 или что-то. Здесь происходит то, что в JSF 1.x не было выделенной технологии просмотра, и, несмотря на то, что большинство людей используют JSP, у нее были некоторые серьезные недостатки. В результате в JSF2 были интегрированы Facelets в качестве технологии выделенного просмотра. Проблема заключается в том, что RichFaces 3.x еще не полностью поддерживает JSF2, в частности, он все еще зависит от независимого проекта Facelets. Таким образом, в результате вы должны отключить встроенные фасеты и включить независимую версию фасетов. Альтернативно, RichFaces4 только что выпустил Milestone 5, который действительно близок к выпуску Candidate (а затем и к стабильной сборке), и он должен быть полностью интегрирован с JSF2