在 Geronimo 的所有歷史版本中, 對 MyFaces 整合的內容比較少, 只是檢查了以下是否有 FacesServlet 在 web.xml 文件中, 如果有則將 MyFaces 的 StartUpListener 添加到 web.xml 中.
在 JSF 2.0 中, 添加了以下幾個特性, 促使需要對整合的代碼做些許修改
a. ManagedBean annotation, 不得不說, 這個標識有些雞肋, 事實上 JSF 規范也并不要求對其提供支持. 尤其是 JavaEE 6 中, 有了 WebBeans 之后. 后在在社區里面提了以下, 似乎也沒什么人關心.
b. 多個 faces-config 文件的排序功能
由于以上兩個功能, 使得在部署市需要做一些工作, 一是必須掃描出所有的使用 ManagedBean annotation 的 Java 類, 并為其構建本地 JNDI 目錄, 否則那些 @EJB 什么的標簽根本沒法工作. 其次是速度問題, 默認情況下, MyFaces 會在啟動時執行以上的兩個功能, 對應用程序的影響比較大.
當前的解決方法時, 參照在 Web 容器的處理方式, 使用一些可序列化的 Info 類, 將所有信息在部署時都生成好, 啟動時直接反序列化, 再通過 MyFaces 的一些 SPI 傳遞過去, 避免每次啟動時重復那些工作.