【现象】
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
在使用会话管理模块的环境中发生HazelcastSerializationException。