`
lingyibin
  • 浏览: 191351 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

简单RMI入门

    博客分类:
  • Java
阅读更多

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的强大。。。

0
0
分享到:
评论

相关推荐

    RMI入门好例子

    最简单的RMI入门好例子,看看远程调用的效果吧,直接在eclipse下导入就可以运行。

    RMI入门例子和教程,分初级、进阶,还有与Spring整合的

    自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic编译的例子;还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些...

    RMI 入门学习资料

    这是本人刚学习RMI时整理出来的一份RMI入门级的资料,其中有几个简单的RMI应用的例子,公布出来供初学RMI的朋友参考学习,提高初学者对RMI学习的速度...

    rmi入门学习,实用的小例子

    描述java rmi的实用方式,有实用简单的入门介绍,很容易理解!!!

    JAVA之RMI入门

    简约而不简单的描述了RMI技术,希望对大家有所帮助。

    原创的JavaRMI项目

    这是原创的最简单的Java RMI入门项目,内含二个Eclipse项目,一是服务器端,二是客户端。非常简单,只看其中的注释就能理解(当然先要知道什么是RMI了),只供入门用。 这是用Java 1.7编辑的,如果你用的版本低,则...

    rmi.rar_rmi实现方式_rmi简单的实现

    一个简单的RMI实现,可实现方法的远程调用,是学习RMI很好的入门资料。

    RMI.rar_rmi

    这是一篇介绍RMI的入门性文档,里面包含了几个简单例子,对于入门有很大的帮助

    rmi实例详解

    RMI的实例详解,可以学习到RMI的一些简单的操作,是很入门的哪种文档

    Java分布式RMI获取服务器时间

    Java语言编写的简单的分布式Demo,使用RMI远程调用实现,RMI是JavaEE中EJB调用的基础,入门的需要先搞清楚

    RMI 的全套使用

    不多说,除了RMI的学习外,gui对新手入门也是个不错的学习 /* *此类适合在本地注册的RMI服务器,避免了使用了多个DOS的写法,只需要简单的给使用 *本类提供的方法即可。 */ package common.rmiserver; import ...

    java 编程入门思考

    第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 抽象的基础类...

    Java初学者入门教学

    第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 抽象的基础类...

    word源码java-fleet-spring-boot:SpringBoot教程,SpringBoot的各种简单示例,快速入门使用Sprin

    的各种简单示例,快速入门使用 Spring Boot 各种组件 示例项目 基础部分: :Spring Boot 快速入门 Hello world 示例 :Spring Boot 自定义 Banner (启动图案) :Spring Boot 主题切换 :Spring Boot 简单的服务...

    Pro Spring Integration (Apress)

    几乎没有入门门槛,概念上比任何“自己编写”的解决方法都要简单。长远来看,它更为灵活、更具有适应性。一旦使用,你就会恋上它。Spring Integration可以和EJB、RMI、JMS这些标准技术协同使用,能让你在一处对复杂...

    java高手真经 光盘源码

    javarmi.zip 24.RMI编程(HelloWorld例、计算器实例) javacorba.zip 25.Corba编程(HelloWorld例、计算器实例) 第6部分(4个程序包) javareflection.zip 26.Java反射机制与动态代理 javageneric.zip 27.Java...

    Java高手真经(编程基础卷)光盘全部源码 免积分

    javarmi.zip 24.RMI编程(HelloWorld例、计算器实例) javacorba.zip 25.Corba编程(HelloWorld例、计算器实例) 第6部分(4个程序包) javareflection.zip 26.Java反射机制与动态代理 javageneric.zip 27.Java...

Global site tag (gtag.js) - Google Analytics