远程接口概念

RMI对接口有着强烈的依赖。在需要创建一个远程对象的时候,我们通过传递一个接口来隐藏基层的实施细节。所以客户得到远程对象的一个句柄时,它们真正得到的是接口句柄。这个句柄正好同一些本地的根代码连接,由后者负责通过网络通信。但我们并不关心这些事情,只需通过自己的接口句柄发送消息即可。
创建一个远程接口时,必须遵守下列规则:
(1) 远程接口必须为public属性(不能有“包访问”;也就是说,它不能是“友好的”)。否则,一旦客户试图装载一个实现了远程接口的远程对象,就会得到一个错误。
(2) 远程接口必须扩展接口java.rmi.Remote。
(3) 除与应用程序本身有关的违例之外,远程接口中的每个方法都必须在自己的throws从句中声明java.rmi.RemoteException。
(4) 作为参数或返回值传递的一个远程对象(不管是直接的,还是在本地对象中嵌入)必须声明为远程接口,不可声明为实施类。

下面是一个简单的远程接口示例,它代表的是一个精确计时服务:

 

//: PerfectTimeI.java
// The PerfectTime remote interface
package c15.ptime;
import java.rmi.*;

interface PerfectTimeI extends Remote {
  long getPerfectTime() throws RemoteException;
} ///:~

它表面上与其他接口是类似的,只是对Remote进行了扩展,而且它的所有方法都会“掷”出RemoteException(远程违例)。记住接口和它所有的方法都是public的。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, 接口
, 远程
, 句柄
, 一个
必须
接口的概念、接口的幂等性的概念、java接口概念、接口概念、接口的基本概念,以便于您获取更多的相关知识。

时间: 2024-10-31 04:58:39

远程接口概念的相关文章

远程接口设计经验分享

远程接口设计经验分享 写在前边 分布式架构是互联网应用的基础架构,很多新人入职以来就开始负责编写和调用阿里的各种远程接口.但如同结婚一般,用对一个正确的接口就如同嫁一个正确的人一样,往往难以那么顺利的实现,或多或少大家都会在这个上边吃亏. 每年双十一系统调用复盘的时候,我都会听到以下声音 你们调我的接口报错了竟然不会自己重试? 我的返回值应该从这里取 我返回isSuccess() == true,不代表业务成功,你还需要判断ERROR_CODE 这个ERROR_CODE没说全部都要重试啊! 这个

远程接口的实施

服务器必须包含一个扩展了UnicastRemoteObject的类,并实现远程接口.这个类也可以含有附加的方法,但客户只能使用远程接口中的方法.这是显然的,因为客户得到的只是指向接口的一个句柄,而非实现它的那个类. 必须为远程对象明确定义构建器,即使只准备定义一个默认构建器,用它调用基础类构建器.必须把它明确地编写出来,因为它必须"掷"出RemoteException违例. 下面列出远程接口PerfectTime的实施过程:   //: PerfectTime.java // The

灵活使用EJB的本地和远程接口(一)

引言 随着 EJB 2.0 规范的出现,Enterprise Java Bean 可以有本地接口.远程接口,或同时有两种接口,这给 J2EE 开发人员和架构师提供了非常大的灵活性.实现两种接口给予 Bean 客户端和 Bean 本身在开发场景方面的自由.取决于客户端与 EJB 的相对位置,可以设置访问 Bean 的逻辑的最佳方式.本地接口提供对 EJB 的优化访问(如果客户端和 Bean 位于同一 Java 虚拟机(Java Virtual Machine,JVM)中),而远程接口可以用于分布式

Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析_Android

     在上一篇文章中,我们分析了Android系统进程间通信机制Binder中的Server在启动过程使用Service Manager的addService接口把自己添加到Service Manager守护过程中接受管理.在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过Service Manager的getService接口中来获得Server远程接口的.Client只有获得了Server的远程接口之后,才能进一步调用Server提供的服务.       

使用AIDL(Android接口描述语言)设计和使用远程接口

http://mintelong.iteye.com/blog/461862# 1 使用AIDL(AndRoid接口描述语言)设计和使用远程接口      1.1 使用AIDL实现IPC         1.1.1 创建一个AIDL文件         1.1.2 实现接口         1.1.3 向客户端公开接口         1.1.4 使用parcelables进行参数的值传递         1.2 调用一个IPC方法  使用AIDL(AndRoid接口描述语言)设计和使用远程接口

用asp做access的远程接口

 以前看到很多网友问,自己有两台服务器,如何这两台服务器上的mdb数据库数据的互访.今天作了个远程的接口,以xml形式返回mdb中的数据.用的主要思想是通过recordset对象的save方法将数据填充到一个xml dom里,但是,这种方法产生的XML不够简洁,自动产生的XML包含了schema信息,它描述这个XML里允许有什么节点和属性以及采用何种数据类型,而且数据节点也增加了名称空间.schema信息在需要数据验证的地方或进行更复杂的处理或许很有用,但是,大多数情况下,我们使用的是瘦客户机,

如何通过对类的序列化实现WCF的远程接口调用?

问题描述 我建立的服务器端和用户端通过WCF实现接口调用,简单说来是传递一个自定义类对象,当然大家会想到序列化,我选用的是BinaryFormatter+MemoryStream,但不管是流类型传递还是转换为byte[]传递都会出现问题(如果各位大神对问题的种类感兴趣我可以给大家截图),我想请教大神们的是:1.基于BinaryFormatter应该选用什么流类型?2.除了Http传输以及Socket传输之外,用纯粹的WCF接口调用怎么远程传递一个自定义对象?IDE是VS2010,语言C#.下面是

java 学习 --------接口概念

   含有抽象方法的类要声明抽象类   但是接口中所有方法都是 抽象方法   定义接口的时候我们就不用class类定义那样了我  们用     interface  Sports{};   来定义接口      我们实现接口的时候就不用extends 派生了  而是用implements 来实现 接口所有方法都是 public abstract  我们不需要去加   我们在实现接口的方法的时候 我们提供的权限要么比他高要么相同 接口中的方法 实现的时候   应该将接口中所有的方法都实现  就好像

灵活使用EJB的本地和远程接口(四)

部署不同的体系结构 服务器项目 创建一个名为"TestServerTomcat"的 Tomcat 服务器项目.在此项目内,选择 New Server and Server Configuration,输入"ServerTomcat"作为服务器名(Server name),并且在"Apache Tomcat version 4.1"下选择 Test Environment 作为服务器类型(Server type).在下一个面板中,指定 TOMCAT