应用程序需要遵守的约定
在会话中没有自定义对象时,WAS 集群的 HTTP 会话内存复制特性成功地实现了高可用性,使用户在宕机过程中的会话信息没有丢失,操作没有受到任何影响。
在会话中包含自定义对象时,通过使对象实现 Serializable 接口(即在类定义时声明 implements Serializable),也可以实现高可用的目标。
事实上,把 JDK 的一些系统类放入会话中时,可以不用考虑序列化的问题,因为这些系统类默认是可序列化的,这些类包括但不限于以下:
java.lang.Character
java.lang.Boolean
java.lang.String
java.lang.StringBuffer
java.lang.Throwable-(包括所有 Exception 的子类)
java.lang.Number-(包括 Integer、Long 等)
java.util.Hashtable
java.util.Random
java.util.Vector-(包括 Stack)
java.util.Date
java.util.BitSet
java.io.File
java.net.InetAddress
java.rmi.server.RemoteObject
如果需要将自定义对象放入会话中,则必须将类声明为实现了 Serializable 接口。