RMI,Remote Method Invocation ,远程方法调用,是Java体系中很重要的一个机制,是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的很快捷的方式。RMI非常容易使用的,但是它却非常的强大。
一个正常工作的RMI系统由下面几个部分组成:
* 远程服务的接口定义
* 远程服务接口的具体实现
* Stub 和 Skeleton 文件
* 一个运行远程服务的服务器
* 一个RMI命名服务,它允许客户端去发现这个远程服务
* 类文件的提供者(一个HTTP或者FTP服务器)
* 一个需要这个远程服务的客户端程序
下面写一个最简单的例子,可以在一台电脑上运行服务端,在另一台电脑上运行客户端。
首先定义一个两端共用的接口:
package com.ling.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IHello extends Remote {
public String sayHello(String str) throws RemoteException;
}
这个接口要继承Remote接口。
写一个服务端:
package com.ling.rmi;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class ServerImpl implements IHello {
protected ServerImpl() throws RemoteException {
super();
}
@Override
public String sayHello(String str) throws RemoteException {
return "Hello,"+str+". this is the server!";
}
public static void main(String[] args) throws RemoteException, AlreadyBoundException {
Registry reg = LocateRegistry.createRegistry(8989);
reg.bind("server", UnicastRemoteObject.exportObject(
new ServerImpl(), 0));
System.err.println("Server Ready!");
}
}
最后 再写一个客户端:
package com.ling.rmi;
import java.rmi.Naming;
public class Client {
public static void main(String args[]) throws Exception {
IHello server = (IHello) Naming.lookup("rmi://localhost:8989/server");
System.out.println(server.sayHello("lingyibin"));
}
}
在两台电脑上运行 试一下,体验一下RMI的强大。。。
分享到:
相关推荐
最简单的RMI入门好例子,看看远程调用的效果吧,直接在eclipse下导入就可以运行。
自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic编译的例子;还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些...
这是本人刚学习RMI时整理出来的一份RMI入门级的资料,其中有几个简单的RMI应用的例子,公布出来供初学RMI的朋友参考学习,提高初学者对RMI学习的速度...
描述java rmi的实用方式,有实用简单的入门介绍,很容易理解!!!
简约而不简单的描述了RMI技术,希望对大家有所帮助。
这是原创的最简单的Java RMI入门项目,内含二个Eclipse项目,一是服务器端,二是客户端。非常简单,只看其中的注释就能理解(当然先要知道什么是RMI了),只供入门用。 这是用Java 1.7编辑的,如果你用的版本低,则...
一个简单的RMI实现,可实现方法的远程调用,是学习RMI很好的入门资料。
这是一篇介绍RMI的入门性文档,里面包含了几个简单例子,对于入门有很大的帮助
RMI的实例详解,可以学习到RMI的一些简单的操作,是很入门的哪种文档
Java语言编写的简单的分布式Demo,使用RMI远程调用实现,RMI是JavaEE中EJB调用的基础,入门的需要先搞清楚
不多说,除了RMI的学习外,gui对新手入门也是个不错的学习 /* *此类适合在本地注册的RMI服务器,避免了使用了多个DOS的写法,只需要简单的给使用 *本类提供的方法即可。 */ package common.rmiserver; import ...
第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...
第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...
的各种简单示例,快速入门使用 Spring Boot 各种组件 示例项目 基础部分: :Spring Boot 快速入门 Hello world 示例 :Spring Boot 自定义 Banner (启动图案) :Spring Boot 主题切换 :Spring Boot 简单的服务...
几乎没有入门门槛,概念上比任何“自己编写”的解决方法都要简单。长远来看,它更为灵活、更具有适应性。一旦使用,你就会恋上它。Spring Integration可以和EJB、RMI、JMS这些标准技术协同使用,能让你在一处对复杂...
javarmi.zip 24.RMI编程(HelloWorld例、计算器实例) javacorba.zip 25.Corba编程(HelloWorld例、计算器实例) 第6部分(4个程序包) javareflection.zip 26.Java反射机制与动态代理 javageneric.zip 27.Java...
javarmi.zip 24.RMI编程(HelloWorld例、计算器实例) javacorba.zip 25.Corba编程(HelloWorld例、计算器实例) 第6部分(4个程序包) javareflection.zip 26.Java反射机制与动态代理 javageneric.zip 27.Java...