javarmi远程方法调用简单实例

上传人:xiao****1972 文档编号:84822203 上传时间:2019-03-05 格式:DOCX 页数:5 大小:101.89KB
返回 下载 相关 举报
javarmi远程方法调用简单实例_第1页
第1页 / 共5页
javarmi远程方法调用简单实例_第2页
第2页 / 共5页
javarmi远程方法调用简单实例_第3页
第3页 / 共5页
javarmi远程方法调用简单实例_第4页
第4页 / 共5页
javarmi远程方法调用简单实例_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《javarmi远程方法调用简单实例》由会员分享,可在线阅读,更多相关《javarmi远程方法调用简单实例(5页珍藏版)》请在金锄头文库上搜索。

1、学习笔记:JAVA RMI远程方法调用简单实例分类:Remote远程对象开发实例2011-05-21 18:503010人阅读评论(3)收藏举报java通讯exceptionstring服务器myeclipseI的概念RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外 一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使

2、用面向对 象的方式实现开发,在开发一个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote Procedure Call)应运而生,它使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持,而且RPC未能做到面向对象调用的开发模 式。针对RPC服务遗留的问题,RMI出现在世人面前,它被设计成一种面向对象的通讯方式,允许程序员使用远程对象来实现通信,并且支持多线程的服务,这 是一次远程通讯的革命,为远程通信开辟新的里程碑。RMI的开发步骤1. 先创建远程接口及声明远程方法,注意这是实现双方通讯的接口,需要继承Remote2. 开发一个类来实现远程接口及远程方

3、法,值得注意的是实现类需要继承UnicastRemoteObject3. 通过javac命令编译文件,通过java -server 命令注册服务,启动远程对象4. 最后客户端查找远程对象,并调用远程方法简单实例首先为服务建立一个Model层,注意因为此对象需要现实进行远程传输,所以必须继承Serializablec-sharpview plaincopy1. packagermi.model;2. importjava.io.Serializable;3. /注意对象必须继承Serializable4. publicclassPersonEntityimplementsSerializable

4、5. privateintid;6. privateStringname;7. privateintage;8. publicvoidsetId(intid)9. this.id=id;10. 11. publicintgetId()12. returnid;13. 14. publicvoidsetName(Stringname)15. this.name=name;16. 17. publicStringgetName()18. returnname;19. 20. publicvoidsetAge(intage)21. this.age=age;22. 23. publicintgetA

5、ge()24. returnage;25. 26. 创建远程接口PersonService,注意远程接口需要继承Remotejavaview plaincopy1. packagermi.service;2. importjava.rmi.Remote;3. importjava.rmi.RemoteException;4. importjava.util.List;5. importrmi.model.*;6. /此为远程对象调用的接口,必须继承Remote类7. publicinterfacePersonServiceextendsRemote8. publicListGetList()t

6、hrowsRemoteException;9. 建立PersonServiceImpl实现远程接口,注意此为远程对象实现类,需要继承UnicastRemoteObjectjavaview plaincopy1. packagermi.serviceImpl;2. importjava.rmi.RemoteException;3. importjava.rmi.server.UnicastRemoteObject;4. importjava.util.LinkedList;5. importjava.util.List;6. importrmi.model.PersonEntity;7. imp

7、ortrmi.service.*;8. /此为远程对象的实现类,须继承UnicastRemoteObject9. publicclassPersonServiceImplextendsUnicastRemoteObjectimplementsPersonService10. publicPersonServiceImpl()throwsRemoteException11. super();12. /TODOAuto-generatedconstructorstub13. 14. Override15. publicListGetList()throwsRemoteException16. /T

8、ODOAuto-generatedmethodstub17. System.out.println(GetPersonStart!);18. ListpersonList=newLinkedList();19. 20. PersonEntityperson1=newPersonEntity();21. person1.setAge(25);22. person1.setId(0);23. person1.setName(Leslie);24. personList.add(person1);25. 26. PersonEntityperson2=newPersonEntity();27. pe

9、rson2.setAge(25);28. person2.setId(1);29. person2.setName(Rose);30. personList.add(person2);31. 32. returnpersonList;33. 34. 35. 建立服务器端,在服务器端注册RMI通讯端口与通讯路径,然后通讯javac命令编译文件,通过java -server 命令注册服务。以下面代码为例,如果阁下将项目建立于D:/RMI/RemotingService文件夹上时,则先输入D:/RMI /RemotingService/srcjavac rmi/remotingservice/Pro

10、gram.java获取Program.class(如何阁下使用的MyEclipse等开发工具,可跳 过此步,直接在*/bin文件夹中直接调用已经生成的Program.class),然后输入D:/RMI/RemotingService /srcjava rmi/remotingservice/Program启动服务。javaview plaincopy1. packagermi.remotingservice;2. importjava.rmi.Naming;3. importjava.rmi.registry.LocateRegistry;4. 5. importrmi.service.*;6

11、. importrmi.serviceImpl.*;7. publicclassProgram8. publicstaticvoidmain(Stringargs)9. /TODOAuto-generatedmethodstub10. try11. PersonServicepersonService=newPersonServiceImpl();12. /注册通讯端口13. LocateRegistry.createRegistry(6600);14. /注册通讯路径15. Naming.rebind(rmi:/127.0.0.1:6600/PersonService,personServi

12、ce);16. System.out.println(ServiceStart!);17. catch(Exceptione)18. /TODOAuto-generatedcatchblock19. e.printStackTrace();20. 21. 22. 最后建立客户端进行测试,注意客户调用的RMI路径必须服务器配置一致javaview plaincopy1. packagermi.remotingclient;2. importjava.rmi.Naming;3. importjava.util.List;4. importrmi.model.PersonEntity;5. importrmi.service.*;6. publicclassProgram7. publicstaticvoidmain(Stringargs)8. try9. /调用远程对象,注意RMI路径与接口必须与服务器配置一致10. PersonServicepersonService=(PersonService)Naming.lookup(rmi:/127.0.0.1:6600/PersonSer

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号