4

在相当大的 xPages 应用程序开发过程中,意识到 Domino 会在应用程序设计发生任何更改后删除应用程序中的所有 sessionScope、viewScope、applicationScope 变量(这会导致服务器上的一些内部应用程序重新加载)。我在开发过程中理解这一点,但它在生产中确实是不可接受的,因为它对连接的用户造成了不一致。即使是代码或 xpage(在任何 xpage,而不是用户正在处理的 xpage)中的简单错字更正并将更改应用于生产应用程序也会导致此删除。有没有办法克服这种行为?(我知道我可以在工作时间以外更新应用程序,但是当您需要快速交付更改时,新应用程序会出现问题,例如错字修复......)

4

3 回答 3

6

必须这样做,因为应用程序中的任何更改都可能导致作用域变量(及其内容)无效。更新应用程序(任何不仅是 xpage 应用程序)应该在没有/有限数量的用户的指定 trimeframe 中完成。

于 2012-04-13T10:07:36.623 回答
2

这个对上一个问题的回答可能会为您提供一个选项。在原始问题的上下文中,定义侦听器的建议只是为了在范围被销毁之前提供进行一些清理的机会。然而,这些类型的侦听器也可用于保存和恢复这些范围的状态。由于 JJTB 提到的原因,我强烈建议您谨慎行事,但肯定在您进行完全不相关的更改(例如结构性、非逻辑性)的情况下,这将为您提供一种防止用户受到频繁范围清除影响的方法。

于 2012-04-13T10:45:20.303 回答
0

jjtbsomhorst 解释了原因。我想补充一点:不要依赖作用域变量并使用 bean。豆类含有“烹饪新鲜配方”,使用起来更安全。如果您按照问题中所述对应用程序进行更新,则根据特定事件(通常在加载时)计算的任何范围变量都将永远丢失。但是,如果您使用 bean - 它的值将在需要时重新创建。

于 2012-04-13T11:11:28.540 回答