【问题标题】:sessionScope Variable Being LostsessionScope 变量丢失
【发布时间】:2015-04-09 10:25:08
【问题描述】:

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

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

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

http://openntf.org/XSnippets.nsf/snippet.xsp?id=keeping-your-xpage-session-alive-%E2%80%93-without-keepsessionalive

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

var cartID = sessionScope.cartID; 

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

【问题讨论】:

  • 显示你的代码。这是一个疯狂的猜测:您是否偶然在 if 语句中使用单个等号进行检查。 if(yourValue = null){ 然后重置变量}。这不会给您错误,但会将值分配给 null。您希望双等于检查它是否为空。我以前做过。
  • 在引用 sessionScope 变量的任何地方都可能使用单等号而不是双等号。这很容易被忽视。搜索名称并检查每个参考。
  • 已添加代码。该代码大部分时间都运行良好。仅偶尔会在经过一段时间后或在切换页面时重置变量。
  • 代码中是否还有其他地方也将 sessionScope.cartID 设置为其他内容?搜索“cartID =”进行检查。
  • 我实际上已经用 2 个页面进行了测试,除了与上面相同的代码以及用于在页面之间切换的链接之外,没有任何内容。发生同样的事情,所以我认为它要么是服务器问题,要么是错误。现在我不知道该怎么办......

标签: xpages session-scope


【解决方案1】:

约翰,

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


另外,John 回复您的评论:调试工具栏不会为您与服务器通信。它只报告您的 UI 发生的操作。它是我跟踪您遇到的问题的宝贵工具。

【讨论】:

  • 是的,我已经设置了“持久会话”。唯一的区别是会话超时更改为 90
  • 很好,我需要确定一下,但我的建议已经不多了。如果我有什么想法,我会告诉你。
  • 嗨约翰,你找到解决办法了吗?我们也遇到了同样的问题。
猜你喜欢
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 2023-03-21
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
相关资源
最近更新 更多