RichFaces:需要跨会话共享JSF视图

RichFaces:需要跨会话共享JSF视图,jsf,memory,view,richfaces,Jsf,Memory,View,Richfaces,注意:我这里有一个相关的问题http://stackoverflow.com/questions/6915055/are-jsf-views-shared-between-users 但这涉及到其他一些问题,所以我创建这个项目是为了关注一个更具体的领域 我正在使用RichFaces,在过去的几周里,我对它的实现、对象分布、内存占用以及JSR-168 Portlet等特性有了更好的了解,并且遇到了可伸缩性问题。考虑到我的大多数页面(即,视图)与用户无关,它们是只读的,并且在大多数情况下对用户社区是

注意:我这里有一个相关的问题http://stackoverflow.com/questions/6915055/are-jsf-views-shared-between-users 但这涉及到其他一些问题,所以我创建这个项目是为了关注一个更具体的领域

我正在使用RichFaces,在过去的几周里,我对它的实现、对象分布、内存占用以及JSR-168 Portlet等特性有了更好的了解,并且遇到了可伸缩性问题。考虑到我的大多数页面(即,视图)与用户无关,它们是只读的,并且在大多数情况下对用户社区是通用的,我想强制RichFaces框架创建逻辑视图的单个视图,并且会话在web.xml中设置为1,在会话之间共享

换句话说,我不希望通过web.xml中提到的配置参数轻松地完成每个会话超过1个视图,但更重要的是,即使跨会话,我也不希望相同基础视图定义超过1个视图


现在,要完成这一点需要什么呢?

我想出来了。我扩展了JBossPortletBridge和JSF StateHolder类,并有一个自定义实现,它允许我在用户会话中再次共享JSF视图,这些视图是只读的,对用户社区来说是通用的。那些特定于会话的,我只是让它们使用默认行为。这有助于将JSF对整个会话大小的贡献在内存方面减少了大约一半