RMI调用模版

原创 2004年07月04日 14:02:00

1. 定义远程接口 

// 远程接口继承自Remote<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

// 远程方法的传入参数和返回值必须是自然类型(intfloatboolean等)

// 或者实现了SerializableRemote接口的对象。

public interface Time extends java.rmi.Remote {

    // 远程方法必须抛出RemoteException

    public String getTime() throws RemoteException;

}

 

2. 定义实现类 

// 注意:实现类继承自UnicastRemoteObject和自定义的远程接口Time

public class TimeImpl extends java.rmi.server.UnicastRemoteObject implements Time {

    // 注意:由于RemoteObject构造函数要抛出RemoteException

    // 因此务必定义构造函数并抛出RemoteException

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

 

    // 这里是远程方法:

    public String getTime() throws RemoteException {

        return "<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />12:04:27";

    }

 

    // 启动服务:

    public static void main(String[] args) throws Exception {

        // 可以手动启动RMI Registry,也可以在程序中启动:

        java.rmi.registry.LocateRegistry.createRegistry(1099);

        // 绑定名字服务,地址是本地计算机名或本机IP,默认端口是1099

        java.rmi.Naming.bind("//localhost:1099/servicename", new TimeImpl());

        // 如果没有异常抛出,则绑定成功。

        // 如果名字已经被绑定,可以用Naming.rebind()替换掉已绑定的服务。

    }

}

 

3. 编译生成桩和框架 

运行rmic TimeImpl,生成TimeImpl_Skel.classTimeImpl_Stub.class

 

4. 客户端

// 客户端文件包含客户端代码Client.class,远程接口Time.class

// rmic生成的支持类TimeImpl_Skel.classTimeImpl_Stub.class

public static void main(String[] args) throws Exception {

    // 客户端通过IP引用服务器端的远程对象,因此可以动态选择服务器。

    // 如果不指定端口,默认端口号是1099

    Time time = (Time)java.rmi.Naming.lookup("//localhost:1099/servicename");

    System.out.println(time.getTime());

}

使用Spring RMI调用远程方法

Spring有多种调用远程的方式,今天学习了一下远程方法调用(RMI)。 RMI需要服务端和客户端 我们先从服务器开始 我的代码结构 package rmi; ...
  • junshuaizhang
  • junshuaizhang
  • 2014年05月28日 19:01
  • 4866

Java RMI框架(远程方法调用)

RMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定...
  • tanga842428
  • tanga842428
  • 2016年08月19日 13:23
  • 610

Java RMI远程方法调用详解

远程方法调用RMI(Remote Method Invocation),是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进...
  • guyuealian
  • guyuealian
  • 2016年07月22日 17:45
  • 9282

RMI远程方法调用技术

RMI远程方法调用技术
  • wangshuxuncom
  • wangshuxuncom
  • 2015年01月23日 15:01
  • 1882

Java中的RMI(远程方法调用)

RMI(Remote Method Invocation,远程方法调用)是从java1.1开始实现的,它大大增强了Java开发分布式应用的能力。RMI对接口有着强烈的依赖,在需要创建一个远程对象的时候...
  • teaandnoodle
  • teaandnoodle
  • 2016年08月23日 19:42
  • 3140

JAVA序列化之RMI远程调用

RMI(Remote Method Invocation)是Java中的远程过程调用(Remote Procedure Call,RPC)实现,是一种分布式Java应用的实现方式。它的目的在于对开发人...
  • u013755987
  • u013755987
  • 2016年07月19日 23:24
  • 1908

java远程调用rmi入门实例

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

使用SpringBoot进行远程RMI调用

SpringBoot的开发确实及其快速,但是其中也不免有一些需要注意的地方,此次使用SpringBoot进行RMI调用完全是相适应当下的Spring发展趋势,网上搜了很多关于Spring原始的在XMl...
  • jokeHello
  • jokeHello
  • 2015年12月22日 11:37
  • 6306

java RMI远程方法调用详解

RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。...
  • jzhf2012
  • jzhf2012
  • 2013年01月07日 14:43
  • 3410

RMI执行过程分析

RMI执行过程分析
  • u012358984
  • u012358984
  • 2015年08月05日 00:32
  • 1416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RMI调用模版
举报原因:
原因补充:

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