前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RMI使用小例

RMI使用小例

作者头像
微风-- 轻许--
发布2022-04-13 08:42:51
1460
发布2022-04-13 08:42:51
举报
文章被收录于专栏:java 微风

1、定义一个接口(继承Remote):

方法要抛RemoteException。

代码语言:javascript
复制
package rmi;
 import java.rmi.RemoteException;


 public interface IAdd extends java.rmi.Remote{

 int add ( int a , int b ) throws RemoteException;  
}

2、定义一个类作为服务端 (继承UnicastRemoteObject ,实现接口IAdd 、,Serializable):

构造和方法要抛RemoteException。

代码语言:javascript
复制
package rmi;
import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;


 public class AddServer extends java.rmi.server.UnicastRemoteObject implements IAdd , Serializable{

 public AddServer() throws RemoteException {  
 super();
 }


 public int add ( int a ,int b ) throws RemoteException {

 return a+b ;
 }

 public static void main(String[] args) {

 try {     
 AddServer as = new AddServer();  
 Registry registry = LocateRegistry.createRegistry(2500);   
//  取名 add
            registry.bind("add", as);  
              //  提示服务端开启
                  System.out.println("AddServer Start...");  

 } catch (Exception e) {   
 e.printStackTrace();   
 }  
 }
 }

3、测试类(作为客户端)

代码语言:javascript
复制
package testdb;

 import java.net.MalformedURLException;
 import java.rmi.Naming;
 import java.rmi.NotBoundException;
 import java.rmi.RemoteException;
 import rmi.IAdd ;

 public class Test {

   public static void main(String[] args) {

 try {
 //  最后拼接的名字来自AddServer 类中取的名字。
 IAdd  add =  ( IAdd )Naming.lookup("rmi://127.0.0.1:2500/add");

 //  测试加法运算
 System.out.println( " a+b= " + add . add ( 2,3) );

 } catch (MalformedURLException e) {
 e.printStackTrace();
 } catch (RemoteException e) {
 e.printStackTrace();
 } catch (NotBoundException e) {
 e.printStackTrace();
 }   
      }
 }

注: IAdd add = ( IAdd )Naming.lookup("rmi://127.0.0.1:2500/add"); 此行中 add 是来自服务端 registry.bind("add", as); 中设置的名字:add 。

即:服务端 registry.bind(" remove ", as); ,那么客户端就是 IAdd add = ( IAdd )Naming.lookup("rmi://127.0.0.1:2500 / remove "); 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/01/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档