当RMI(Sun VM中的sun.rmi
实现)反序列化对象时,作为远程调用的参数或返回值的一部分,它需要从类的名称开始(序列化数据中的字符串)到Class
对象。 RMI如何决定使用哪个ClassLoader
来定义类?
答案 0 :(得分:2)
默认情况下,Java反序列化在堆栈中搜索第一个非系统类并使用其类加载器(即第一个非null类加载器)。 RMI在串行流中添加注释,以提供应从中下载类的位置(URL)。默认情况下,RMI类加载器使用该位置来查找其他类。有一个系统属性可以关闭该行为(不是一个坏主意)。