Java中远程调用

Java中远程调用

ID:39550644

大小:24.00 KB

页数:3页

时间:2019-07-06

Java中远程调用_第1页
Java中远程调用_第2页
Java中远程调用_第3页
资源描述:

《Java中远程调用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.RMI概述RMI(RemoteMethodInvocation)是分布对象软件包,简化了在多台计算机上的Java应用之间的通信,使用的JDK版本必须在1.1以上。用到的类有两个:第一java.rmi.Remote,所有可以被远程调用的对象都必须实现该接口;第二java.rmi.server.UnicastRemoteObject,所有可以被远程调用的对象都必须扩展该类。2.什么是RMI远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某台计算机上的对象在调用另外一台计算机方法时,使用的程序语法规则和

2、在本地机上对象间的方法调用的语法规则一样。3.实现一个简单的RMI必须构造四个主要的类:远程对象的本地接口、RMI客户、远程对象实现和RMI服务器。RMI服务器生成远程对象实例的一个实例,并用一个特殊的URL注册它,RMI客户在远程服务器上查找对象,若找到就把它转换成本地接口类型,然后像一个本地对象一样使用它。以一个例子来说明:远程对象的本地接口类该类仅仅是一个接口,而不是实现,RMI客户机可以直接运行,RMI服务器必须通过一个远程对象来实现,并用某个URL注册它的一个实例.本地接口必须是公共的,否则客户机在加载一个实现该接口的远程对象时会

3、出现错误。同时必须从java.rmi.Remote继承而来,接口中每一个方法都必须抛出异常java.rmi.RemoteExceptionpackageremote;importjava.rmi.*;//这是一个本地接口类,而不是实现publicinterfaceLocalInterfaceextendsRemote{publicStringgetString()throwsRemoteException;}RMI客户类RMI客户使用Naming.lookup在指定的远程主机上查找对象,若找到就将其转换为本地接口类型(在此例子中是Local

4、Interface),然后就可以像本地对象一样使用它。远程服务机的URL可以通过rmi://host/path或rmi://host:port/path来指定。Naming.lookup可能产生三个异常:RemoteException,NotBoundException和MalformedURLException,三个异常均需捕获。其中前两个异常在java.rmi.*中定义,最后一个异常在java.net.*中定义。另外客户机将向远程对象中传递串行化对象Serializable,所以还应在程序中输入java.io.*。packageremo

5、te;importjava.rmi.*;importjava.net.*;importjava.io.*;publicclassClientRemote{publicstaticvoidmain(String[]args){try{Stringhost=(args.length>0)?args[0]:"localhost";//从命令行读取需要连接的主机名System.out.println(host);//通过URL在远程主机上查找对象,并把它转化为本地接口LocalInterface类型LocalInterfacelocalObject

6、=(LocalInterface)Naming.lookup("rmi://"+host+"/remote.LocalInterface");System.out.println(localObject.getString());//调用远程对象的方法}catch(RemoteExceptione){System.out.println(e.toString());}catch(NotBoundExceptionex){System.out.println(ex.toString());}catch(MalformedURLExceptio

7、nmfe){System.out.println(mfe.toString());}}远程对象实现类这个类真正实现RMI客户调用的远程对象,它必须从UnicastRemotedObject继承,其构造函数应该抛出RemoteException异常。packageremote;importjava.rmi.*;importjava.rmi.server.*;publicclassImpleRemoteextendsUnicastRemoteObjectimplementsLocalInterface{publicImpleRemote()th

8、rowsRemoteException{}//构造函数抛出RemoteException异常publicStringgetString()throwsRemoteExceptio

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。