如何(在实现级别)Java RMI加载+定义类?

时间:2011-12-14 00:02:28

标签: java serialization classloader rmi

当RMI(Sun VM中的sun.rmi实现)反序列化对象时,作为远程​​调用的参数或返回值的一部分,它需要从类的名称开始(序列化数据中的字符串)到Class对象。 RMI如何决定使用哪个ClassLoader来定义类?

1 个答案:

答案 0 :(得分:2)

默认情况下,Java反序列化在堆栈中搜索第一个非系统类并使用其类加载器(即第一个非null类加载器)。 RMI在串行流中添加注释,以提供应从中下载类的位置(URL)。默认情况下,RMI类加载器使用该位置来查找其他类。有一个系统属性可以关闭该行为(不是一个坏主意)。