无法从GemFire支持的会话中检索已保存的对象

时间:2018-09-19 15:22:59

标签: java session gemfire spring-data-gemfire

我正在使用GemFire会话存储来保存和检索对象。

session.getAttribute(sessionKey) and session.setAttribute(sessionKey, value)

但是,有时在保存后,当我尝试单击下一个按钮来检索对象时,我会得到一个null值。其他时候,它会正确检索值。用于保存和检索的会话ID相同,但仍检索到null

有什么办法可以查看针对特定密钥保存在Geode的Pulse Monitoring应用程序(数据浏览器工具)中的数据?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

简短的回答,是的,您可以使用 Gfsh Pulse的 DataBrowser工具(扩展名)来编写OQL查询,从而检查存储在相应Region中的会话对象状态。

我已经编写了几个OQL查询(可用here),您可以检查存储在Region中的对象,包括一个包含会话属性的会话对象,其中属性值可能指向存储在其中的应用程序域对象例如,您的应用程序在Spring Web MVC Controller中进行会话。

这些OQL查询假定您正在使用Spring Session for Pivotal GemFire来管理HTTP会话状态(即HttpSession),并使用Pivotal GemFire作为Spring Session的数据存储提供程序。

如果您改用Pivotal GemFire的HTTP Session Management Module,则需要调整这些OQL查询。

最后,请注意,您可能需要将应用程序域对象类型(类)放在服务器的类路径上,因为某些OQL查询语句会导致对存储的应用程序域对象类型进行反序列化。

另外,请查看Pivotal GemFires documentation on querying,以了解更多详细信息。

希望这会有所帮助!

相关问题