【发布时间】:2012-01-19 20:16:38
【问题描述】:
当 RMI(Sun VM 中的 sun.rmi 实现)反序列化对象时,作为远程调用的参数或返回值的一部分,它需要从类的名称(序列化中的字符串数据)到Class 对象。 RMI 如何决定使用哪个ClassLoader 来定义类?
【问题讨论】:
标签: java serialization classloader rmi
当 RMI(Sun VM 中的 sun.rmi 实现)反序列化对象时,作为远程调用的参数或返回值的一部分,它需要从类的名称(序列化中的字符串数据)到Class 对象。 RMI 如何决定使用哪个ClassLoader 来定义类?
【问题讨论】:
标签: java serialization classloader rmi
默认情况下,Java 反序列化在堆栈中搜索第一个非系统类并使用其类加载器(即第一个非空类加载器)。 RMI 将注释添加到串行流中,以提供应从中下载类的位置(URL)。默认情况下,RMI 类加载器使用该位置来查找其他类。有一个系统属性可以关闭该行为(这不是一个坏主意)。
【讨论】: