Jsf 2 JSF2.0@ViewScope bean未在集群环境中复制

Jsf 2 JSF2.0@ViewScope bean未在集群环境中复制,jsf-2,Jsf 2,在ApacheTomcat服务器上的集群环境中部署了JSF2.0。如何在集群环境中复制视图范围的bean 大多数bean都在viewscope中,状态保存方法是client 问题是:当我打开Home.xhtml时,第一个请求转到节点1。已创建视图作用域bean。单击action按钮处理并加载相同的view now请求将转到节点2,该视图不存在。JSF创建新的viewscoped bean,这就是我在node1中失去以前状态的地方 另一方面,JSF视图状态在集群环境中可能无法正常工作。如何在集群环

在ApacheTomcat服务器上的集群环境中部署了JSF2.0。如何在集群环境中复制视图范围的bean

大多数bean都在viewscope中,状态保存方法是client

问题是:当我打开Home.xhtml时,第一个请求转到节点1。已创建视图作用域bean。单击action按钮处理并加载相同的view now请求将转到节点2,该视图不存在。JSF创建新的viewscoped bean,这就是我在node1中失去以前状态的地方

另一方面,JSF视图状态在集群环境中可能无法正常工作。如何在集群环境中使用JSF2


除了会话复制和粘性会话之外,还有其他解决方案吗?

JSF viewscope,客户端状态保存,可以在群集环境中工作。如果应用程序在单个请求中发布整个请求,而不是尝试发送部分页面请求


如果您更改UI中的某些字段,JSF将在服务器中复制这些字段,因为您发送的是整个状态而不是部分状态

会话复制或粘性会话就是答案。不这样做除了破坏视图范围之外还有许多其他副作用。不知道你为什么不想使用你显然已经知道的正确解决方案。巴鲁克,谢谢你的回复。由于架构限制,无法使用会话复制或粘性会话。是否有解决此问题的方法?如果群集体系结构不是为有状态的web应用程序设计的,那么您最好将web应用程序重新设计为无状态的应用程序(即坚持请求范围的bean,并通过请求参数手动执行状态)。BalusC,再次感谢您的回复。最后一个问题:)。在客户端存储视图状态。如果视图中的任何字段发生了更改,JSF应该正确地更新模型中的更改,而不管它要去哪个节点?