ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java rmi学习笔记(rmi文档翻译)(未完)

2019-07-13 23:01:26  阅读:158  来源: 互联网

标签:java 对象 接口 存根 文档 参数 rmi 方法 远程


1.1 java.rmi.Remote接口:

      远程接口需要满足的条件:必须继承Remote接口,远程方法必须抛出RemoteException异常,

      如果远程对象作为远程方法的参数或者返回值——>参数或返回值必须声明为远程接口。

1.2 RemoteException 抛出该异常可能因为以下情况:

      交互失败:远程服务器不可达或拒绝连接

      在参数或返回值 marshalling 或unmarshalling期间失败

      协议错误

1.3 实现Remote接口:

      如果不继承UnicastRemoteObject,那就没有hascode()、equals()、toString()方法的自定义

      当导出远程对象没有指定socket Factory时,默认导出到所有本地地址

1.4 远程方法的参数或返回值,是远程对象或非远程对象(非远程对象需要实现Serializable接口)

      远程对象:如果远程对象已在服务端注册,那么传递的是存根(说明存根实现了Serializable),否则,传递的是这个远程对象实体(看做非远程对象)

      非远程对象:传递的是副本,非远程对象的内容,在服务端调用远程对象实体的远程方法之前已经复制好了

1.5 类注释

      当一个对象在一次远程方法调用中,从一个JVM传到另一个JVM中,rmi系统用类的信息(类的URL)注释调用流中的类描述,使得这个类能加载给接受者

1.6 在一次远程方法调用中,参数如何传递?

      参数被写到ObjectOutputStream流中,RMI的ObjectOutputStream子类会覆写replaceObject(Object obj)方法,用存根代替实体远程对象。

      在哪里调用replaceObject方法:在writeObject里面。

      算法:如果远程对象已在服务端注册,那么传递存根,否则,传递远程对象实体,如果参数不是Remote实例,则replaceObject()直接返回原对象

      MarshalOutputStream是RMI的ObjectOutputStream子类之一,有replaceObject方法和writeLocation方法

1.7 

      

 

 

标签:java,对象,接口,存根,文档,参数,rmi,方法,远程
来源: https://www.cnblogs.com/dengrong/p/11182487.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有