在使用会话管理模块的环境中发生HazelcastSerializationException。

 
【现象】

jp.co.intra_mart.system.hazelcast.nio.serialization.HazelcastSerializationException在以下条件下发生。

・使用会话管理模块。
・进行分布式环境搭建或会话永久化
・在HTTP会话中存储了无法序列化的ClassInstance。

在分布式环境中,会话管理模块在另一台服务器上保留会话信息的副本。
此时,将序列化HTTP会话中的信息并将其传输到其它服务器。
此外,如果会话信息在DB等中永久化,也将同样进行序列化并保存。

因此,需要在HTTP会话中存储可序列化的ClassInstance。

【处理方法】

请确认错误消息,并确认HTTP会话中是否存储无法序列化的ClassInstance。
如果已存储,请将其更改为存储可序列化类。

通常,有关存储在HTTP会话中的信息,建议您考虑以下内容。

・不存储无法序列化的ClassInstance。
・不存储大型ClassInstance。
・不存储过多的信息。

【参考信息】

(用于将数据)存储在HTTP会话中的Java API

・https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html#setAttribute-java.lang.String-java.lang.Object-

(用于将数据)存储在HTTP会话中的脚本API

・https://api.intra-mart.jp/iap/apilist-ssjs/doc/platform/Client/index.html#method-set_5
 此外,用于脚本开发的Object基本上是可序列化的Object。

-- 适用对象 -------------------------------------------------------------------
iAP/Accel Platform/所有更新版本
 -------------------------------------------------------------------------------

FAQID:1200
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持