Другая проблема заключается в том, что MyFaces по умолчанию выполняет сериализацию состояния, даже когда состояние сохраняется на сервере (по умолчанию). В свою очередь, требует представления базовых компонентов в области видимости для сериализации.
Плюсы этого подхода в том, что история - это действительно история. Когда вы возвращаетесь к предыдущей версии представления (используя кнопку «Назад»), вы фактически получаете точную версию компонента поддержки в то время.
Суть в том, что кажется, что это препятствует внедрению сервисов (и не связано с этой проблемой, является основным ударом по производительности). Точно такие же проблемы возникают при внедрении службы EJB.
Существует параметр контекста, который вы можете поместить в web.xml, чтобы отключить это поведение:
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>
См. http://wiki.apache.org/myfaces/Performance
Кстати, Mojarra имеет аналогичную настройку, но там по умолчанию установлено значение false.