Xpages 会话范围变量丢失

Xpages 会话范围变量丢失,xpages,session-scope,Xpages,Session Scope,我在beforePageLoad中检查XPage中的sessionScope变量,如果该变量为null,则将其设置为随机值 出于某种原因,它通常等于null,因此我不断丢失变量,即使数据库中的会话超时设置为90分钟,也会以5分钟的速度丢失 我尝试了ExtLib KeepSessionAlive,设置为180秒,没有运气。我也在这里尝试了代码: 这似乎也不起作用。这是一个测试服务器,因此不承受任何负载。到目前为止,我一直发现sessionScope变量非常可靠。我做错了什么 var cartID

我在beforePageLoad中检查XPage中的sessionScope变量,如果该变量为null,则将其设置为随机值

出于某种原因,它通常等于null,因此我不断丢失变量,即使数据库中的会话超时设置为90分钟,也会以5分钟的速度丢失

我尝试了ExtLib KeepSessionAlive,设置为180秒,没有运气。我也在这里尝试了代码:

这似乎也不起作用。这是一个测试服务器,因此不承受任何负载。到目前为止,我一直发现sessionScope变量非常可靠。我做错了什么

var cartID = sessionScope.cartID; 

if (cartID == null) { 
    sessionScope.cartID = @Unique(); 
}
约翰

请确保在XSP属性中保留请求之间的更改



另外,John在回复您的评论时说:“调试”工具栏不会为您与服务器通信。它只报告用户界面中正在发生的操作。对于我来说,这是一个非常宝贵的工具,可以帮助我追踪像您这样的问题

给我看看你的代码。这里有一个大胆的猜测:您在if语句中偶然使用了一个equals进行检查。如果(yourValue=null){则重置变量}。这不会给您一个错误,但会将该值指定为null。您希望double equals检查它是否为null。我以前也做过这样的操作。在引用sessionScope变量的任何地方都可以使用单等号而不是双等号。这很容易被忽视。搜索名称并检查每个引用。添加代码。该代码在大多数情况下运行良好。只是偶尔会在经过一段时间后或切换页面时重置变量。代码中是否有其他位置也将sessionScope.cartID设置为其他位置?搜索“cartID=”进行检查。实际上我已经用两个页面做了一个测试,除了上面相同的代码和一个在页面之间切换的链接外,没有其他内容。同样的事情也会发生,所以我认为这要么是服务器问题,要么是bug。现在我不知道该怎么办了……是的,我已经设置了“持续会话”。唯一的区别是会话超时被更改为90Good,我需要确定,但是我没有什么建议了。如果我有什么想法,我会告诉你的。嗨,约翰,你找到解决办法了吗?我们也遇到了同样的问题。