`
北斗文昌
  • 浏览: 9913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

RMI简单示例

阅读更多

一、HelloInterface接口

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface HelloInterface extends Remote {
	//此处定义方法需要抛出RemoteException
	public void say() throws RemoteException;
}

 

 二、接口实现类Hello

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Hello extends UnicastRemoteObject implements HelloInterface{

	/**
	 * 
	 */
	private static final long serialVersionUID = 4495270645164980784L;
	
	private String s;

	public Hello(String s) throws RemoteException {
		super();
		this.s=s;
	}	
	
	/**
	 *	打印
	 */
	@Override
	public void say() throws RemoteException {
		System.out.println("hello: "+s);		
	}
}

 

三、服务器端

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class RMIServer implements Runnable{

	@Override
	public void run() {
		try {
			//绑定端口
			LocateRegistry.createRegistry(1099);
			HelloInterface hi = new Hello("Hello,World!");
			//进行对象绑定
			Naming.rebind("rmi://192.168.8.88:1099/H", hi);
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[]args){
		try {
			//绑定端口
			LocateRegistry.createRegistry(1099);
			HelloInterface hi = new Hello("Hello,World!");
			//进行对象绑定
			Naming.rebind("rmi://192.168.8.88:1099/H", hi);
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

 

四 、客户端

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

public class RMIClient implements Runnable{

	@Override
	public void run() {
		try {
			//从服务器获取对象
			HelloInterface hi =   (HelloInterface) Naming.lookup("rmi://192.168.8.88:1099/H");
			//调用获取对象的方法
			hi.say();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}		
	}
	public static void main(String[]args){
		try {
			//从服务器获取对象
			HelloInterface hi =   (HelloInterface) Naming.lookup("rmi://192.168.8.88:1099/H");
			//调用获取对象的方法
			hi.say();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
	}
}

 

五、测试

import org.junit.BeforeClass;
import org.junit.Test;

import com.rmi.client.RMIClient;
import com.rmi.server.RMIServer;

public class RMITest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test
	public void testRMI() throws InterruptedException{
		RMIServer rs = new RMIServer();
		rs.run();
		Thread.sleep(100);
		RMIClient rc = new RMIClient();
		rc.run();
	}
}

 

分享到:
评论

相关推荐

    Java RMI 简单示例

    总结来说,Java RMI简单示例主要展示了以下知识点: 1. **远程接口**:定义了远程方法的签名,需要继承`Remote`接口。 2. **远程对象**:服务器端的类实现远程接口,并继承`UnicastRemoteObject`,以支持远程调用。 ...

    javaRMI简单示例

    这个“javaRMI简单示例”是针对初学者,尤其是刚毕业的学生设计的一个教学资源,旨在帮助他们快速理解RMI的基本原理和实现步骤。 RMI的核心思想是使对象能够在网络中的不同计算机上进行调用,就像它们在同一台机器...

    RMI 简单示例-Java Remote Methods Invocation

    在“RMI简单示例 - Java Remote Methods Invocation”中,我们将探索如何利用RMI创建一个简单的客户端-服务器架构。在这个例子中,我们有一个服务端,它暴露了一个远程接口,以及一个客户端,该客户端能够调用服务端...

    分布式程序设计——RMI简单示例

    本篇文章将通过一个简单的RMI示例,帮助你理解和掌握如何使用RMI进行分布式编程。 首先,理解RMI的基本概念是非常重要的。RMI允许Java对象作为远程对象暴露给其他Java应用程序,这些应用程序可以像调用本地对象一样...

    java简单示例rmi

    一个简单的RMI示例步骤如下: 1. 定义远程接口,如: ```java import java.rmi.Remote; import java.rmi.RemoteException; public interface MyRemoteInterface extends Remote { String doSomething(String ...

    JAVA RMI简单例子

    这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...

    RPC-RMI实现加法的简单示例程序

    现在我们来深入解析这个“RPC-RMI实现加法的简单示例程序”。 首先,我们需要定义一个接口,这个接口将包含我们要实现的加法操作。在Java中,这个接口通常会用`@Remote`注解标记,表明它包含的都是远程方法。例如:...

    rmi简单例子

    根据提供的文件信息,本文将详细解释RMI(远程方法调用)的概念、工作原理以及一个简单的RMI示例。RMI是一种Java技术,允许在不同的Java虚拟机(JVM)之间进行远程过程调用。 ### RMI简介 RMI是Java平台提供的一种...

    让VC++ 支持RMI功能类库 示例代码

    这个项目可能演示了如何在VC++环境中设置和使用RMI,例如创建一个简单的服务器,暴露一个远程方法,以及一个客户端来调用这个方法。 要深入学习和应用这些知识点,你需要对C++编程、面向对象设计、网络通信和可能的...

    java RMI简单Demo

    要运行这个RMI示例,首先确保JDK已经安装并且JVM支持RMI,然后按照以下步骤操作: 1. 编译所有源代码,生成对应的class文件。 2. 在服务器端启动RMI注册表(命令行输入`rmiregistry`或`java -jar rmiregistry.jar`...

    JMX以RMI方式连接的场景示例

    JMX以RMI方式连接的场景示例 JMX(Java Management Extensions)是一种Java技术,用于管理和监控应用程序。JMX框架主要由三部分组成:MBean(Managed Bean)、Agent(代理)和Client(客户端)。在本场景中,我们将...

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

    RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个重要特性,它允许Java对象在不同的JVM之间进行通信,实现分布式计算。...通过提供的简单示例,你已经可以开始探索和实践RMI技术了。

    java rmi 简单易懂的实例

    通过这个简单的实例,学习者可以了解到Java RMI的基本工作流程,以及如何在实践中部署和使用远程对象。深入研究后,还可以探索更复杂的场景,如并发调用、安全性控制、容错机制等,以构建更加健壮和高效的分布式系统...

    rmi 孙维琴示例和电子版

    下面我们将深入探讨RMI的基本概念、工作原理以及孙维琴示例的相关知识。 一、RMI基本概念 1. 远程接口(Remote Interface):定义了远程对象需要实现的方法。这些接口必须继承自java.rmi.Remote接口,声明的每个...

    java 简单RMI 会议功能实现

    这个简单的RMI会议服务示例展示了如何利用Java RMI来实现分布式系统中的协作功能。通过RMI,不同客户端可以访问并修改共享的会议议程,增强了系统的可扩展性和协作性。在实际项目中,可以根据需求进一步优化设计,...

    RMI简单实例.docx

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间进行方法调用,仿佛...这只是一个基础示例,实际的RMI应用可能涉及更复杂的交互和错误处理。

    spring rmi 简单应用

    在提供的`serverRmi`压缩包中,可能包含了实现上述步骤的源代码示例,包括服务器端的服务实现和配置文件,以及客户端的调用代码和配置。通过学习和分析这些代码,你可以更好地理解和掌握Spring RMI的实际应用。

    jdk-rmi:jdk原生rmi应用示例

    接下来,我们将详细讨论如何创建和运行一个简单的RMI应用示例: 1. **定义远程接口**: 创建一个接口,如`MyRemoteInterface.java`,并声明远程方法。例如: ```java public interface MyRemoteInterface ...

    springRMI示例

    **Spring RMI 示例** 在Java世界中,远程方法调用(Remote Method Invocation,RMI)是一种允许对象在不同 JVM(Java Virtual Machine)之间进行通信的技术。Spring框架对RMI进行了进一步的封装,使得使用RMI变得...

Global site tag (gtag.js) - Google Analytics