RMI学习笔记(二)-----RMI远程调用实例(一)

原创 2004年08月30日 20:27:00

1.         RMI最简单的一个实例,思路是你在服务器端创建一个方法addData(),该方法实现两个整数的相加,然从客户端远程调用这个方法实现相加功能

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

2.    我们一步一步来实现,首先定义远程接口-----远程接口类

import java.rmi.*;

import java.rmi.server.*;

 

public interface AddServer extends Remote

{

       public int addData(int a,int b)throws RemoteException;

}

 

2.         定义和实现服务器中远程方法-----服务器类

import java.rmi.*;

import java.rmi.server.*;

//注意要扩展UnicastRemoteObject

public class AddServerImpl extends UnicastRemoteObject implements AddServer

{

       public AddServerImpl()throws RemoteException

       {

              super();

       }

       public int addData(int a,int b)throws RemoteException

       {

              return a+b;

       }

       public static void main(String s[])

       {

              try

              {

                     //创建该远程对象

                     AddServerImpl instance=new AddServerImpl();

                     //注册该远程对象

Naming.rebind("add",instance);

                     System.out.println("Server Registered");

              }

              catch(Exception e){System.out.println(e);}

       }

}

 

3.         定义与实现客户-----客户类

import java.io.*;

import java.rmi.*;

 

public class AddClient

{

       public AddClient()

       {

              try

              {

                     BufferedReader input=new BufferedReader(new InputStreamReader(System.in));

                     System.out.println("Please enter first number:");

                     System.out.flush();

                     String s=input.readLine();

                     int num1=Integer.parseInt(s);

                     System.out.println("Please enter second number:");

                     System.out.flush();

                     s=input.readLine();

                     int num2=Integer.parseInt(s);

                    

                     AddServer addserver=(AddServer)Naming.lookup("rmi://127.0.0.1/add");

                    

                     int i=addserver.addData(num1,num2);

                     System.out.print("Result is:"+i);

                    

              }

              catch(Exception e){System.out.println(e);}

       }

       public static void main(String s[])

       {

              new AddClient();

       }

}

 

4.         编译javac *.java

 

5.         生成StubSkeleton

在命令提示符下:rmic  AddServerImpl

这时你会发现在文件夹中多了两个文件AddServerImpl_Skel.classAddServerImpl_Stub.class

 

6.         创建安全策略

在命令提示符下:policytool

点击Add Policy Entry按钮

点击Add Permission按钮

Permission列表框中选取:AllPermission

点击ok

点击Done按钮

File菜单总选择Save as,打入文件名.java.policy,接着保存在你那个登录用户名的文件夹下面

7.         启动RMI远程注册表

在命令提示符下:start  rmiregistry

 

8.         启动服务器

在命令提示符下:java  AddServerImpl

 

 

9.         启动客户

在命令提示符下:java  AddClient

 

10.   如果你是在自己机器上调试的话,那么到第九步就可以了,如果你在两台机器上调试的话,需要改一下AddClient代码中的IP地址,并且把AddClient.classAddServer.classAddServerImpl_Stub.class放到你打算作为客户端的那台机器上去,注意其它文件不要放,否则你就等于把服务端代码都告诉别人了。

 

 

java远程调用rmi入门实例

RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol...
  • h348592532
  • h348592532
  • 2014年10月17日 13:24
  • 2071

浅谈RMI - 搭建一个简单的RMI程序

RMI是Remote Method Invoke的缩写,是JDK提供的一个完善的、简单易用的远程调用框架,它要求客户端和服务器端都是Java程序。下面简述RMI的基本原理:如下图所示,RMI采用代理来...
  • xiaoyaoyulinger
  • xiaoyaoyulinger
  • 2016年05月19日 11:50
  • 2266

RMI简单实例与Spring集成RMI

rmi远程方法调用,用于服务器端和kehuduan
  • undergrowth
  • undergrowth
  • 2014年05月03日 13:18
  • 2286

java分布式对象RMI应用测试用例

【0】README 0.1)本文旨在对http://blog.csdn.net/PacosonSWJTU/article/details/50705192  中的代码进行实践(如何部署一个使用RMI框...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016年02月20日 16:59
  • 933

Java RMI之HelloWorld程序以及相关的安全管理器的知识

Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方...
  • wjrong_1
  • wjrong_1
  • 2015年07月22日 16:38
  • 1469

java RMI原理详解

定义 RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上...
  • xinghun_4
  • xinghun_4
  • 2015年05月17日 19:16
  • 7639

RMI和socket详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp58   一般来说,基于CS(client-server)软件架构的开...
  • yemou_blog
  • yemou_blog
  • 2015年12月14日 11:17
  • 594

java rmi服务器端客户端传输数据实例教程

java rmi服务器端客户端传输数据实例教程 java代码下载地址:http://www.zuidaima.com/share/1550463269620736.htm...
  • yaerfeng
  • yaerfeng
  • 2014年07月19日 10:56
  • 4245

远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“cl...
  • shan9liang
  • shan9liang
  • 2013年06月04日 10:31
  • 67663

docker命令之rmi

docker命令之rmi
  • u010822828
  • u010822828
  • 2015年02月03日 16:52
  • 1312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RMI学习笔记(二)-----RMI远程调用实例(一)
举报原因:
原因补充:

(最多只允许输入30个字)