我们有一个将webapp实现为多个OSGi
捆绑包的方案。我们希望进行捆绑更新,以便将错误修正等透明地部署到正在运行的系统中。假设刷新和包重新启动的更新周期,当重新加载类的对象存储在导致HttpSession
的{{1}}时,这将导致问题。
我们正在寻找几种不同的方法来实现捆绑更新,而不会在登录会话中丢失状态。为了简化会话状态访问依赖关系图,我们考虑设置以下限制:
所以,这些是我们以某种最小到最大的含义顺序提出的替代方案:
ClassCastException
类型(java.*
,String
等)List
服务,并将状态保持在其他地方
- >没有处理OSGi
... 我是否错过了任何有趣的选择? 你推荐什么解决方案?
[尽管这篇文章明确谈到了会话状态,但同样的讨论可能适用于其他范围,例如会话状态,应用程序状态等]
答案 0 :(得分:4)
在我看来,正确的答案不是一个简单的规则,而是一系列规则,如:
有关缓存和持久数据关系的更多信息:
这就是我们在公司设计Web应用程序的方式,这似乎是一种好方法。但是,还有其他方法。