一、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简单示例主要展示了以下知识点: 1. **远程接口**:定义了远程方法的签名,需要继承`Remote`接口。 2. **远程对象**:服务器端的类实现远程接口,并继承`UnicastRemoteObject`,以支持远程调用。 ...
这个“javaRMI简单示例”是针对初学者,尤其是刚毕业的学生设计的一个教学资源,旨在帮助他们快速理解RMI的基本原理和实现步骤。 RMI的核心思想是使对象能够在网络中的不同计算机上进行调用,就像它们在同一台机器...
在“RMI简单示例 - Java Remote Methods Invocation”中,我们将探索如何利用RMI创建一个简单的客户端-服务器架构。在这个例子中,我们有一个服务端,它暴露了一个远程接口,以及一个客户端,该客户端能够调用服务端...
本篇文章将通过一个简单的RMI示例,帮助你理解和掌握如何使用RMI进行分布式编程。 首先,理解RMI的基本概念是非常重要的。RMI允许Java对象作为远程对象暴露给其他Java应用程序,这些应用程序可以像调用本地对象一样...
一个简单的RMI示例步骤如下: 1. 定义远程接口,如: ```java import java.rmi.Remote; import java.rmi.RemoteException; public interface MyRemoteInterface extends Remote { String doSomething(String ...
这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...
现在我们来深入解析这个“RPC-RMI实现加法的简单示例程序”。 首先,我们需要定义一个接口,这个接口将包含我们要实现的加法操作。在Java中,这个接口通常会用`@Remote`注解标记,表明它包含的都是远程方法。例如:...
根据提供的文件信息,本文将详细解释RMI(远程方法调用)的概念、工作原理以及一个简单的RMI示例。RMI是一种Java技术,允许在不同的Java虚拟机(JVM)之间进行远程过程调用。 ### RMI简介 RMI是Java平台提供的一种...
这个项目可能演示了如何在VC++环境中设置和使用RMI,例如创建一个简单的服务器,暴露一个远程方法,以及一个客户端来调用这个方法。 要深入学习和应用这些知识点,你需要对C++编程、面向对象设计、网络通信和可能的...
要运行这个RMI示例,首先确保JDK已经安装并且JVM支持RMI,然后按照以下步骤操作: 1. 编译所有源代码,生成对应的class文件。 2. 在服务器端启动RMI注册表(命令行输入`rmiregistry`或`java -jar rmiregistry.jar`...
JMX以RMI方式连接的场景示例 JMX(Java Management Extensions)是一种Java技术,用于管理和监控应用程序。JMX框架主要由三部分组成:MBean(Managed Bean)、Agent(代理)和Client(客户端)。在本场景中,我们将...
RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个重要特性,它允许Java对象在不同的JVM之间进行通信,实现分布式计算。...通过提供的简单示例,你已经可以开始探索和实践RMI技术了。
通过这个简单的实例,学习者可以了解到Java RMI的基本工作流程,以及如何在实践中部署和使用远程对象。深入研究后,还可以探索更复杂的场景,如并发调用、安全性控制、容错机制等,以构建更加健壮和高效的分布式系统...
下面我们将深入探讨RMI的基本概念、工作原理以及孙维琴示例的相关知识。 一、RMI基本概念 1. 远程接口(Remote Interface):定义了远程对象需要实现的方法。这些接口必须继承自java.rmi.Remote接口,声明的每个...
这个简单的RMI会议服务示例展示了如何利用Java RMI来实现分布式系统中的协作功能。通过RMI,不同客户端可以访问并修改共享的会议议程,增强了系统的可扩展性和协作性。在实际项目中,可以根据需求进一步优化设计,...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间进行方法调用,仿佛...这只是一个基础示例,实际的RMI应用可能涉及更复杂的交互和错误处理。
在提供的`serverRmi`压缩包中,可能包含了实现上述步骤的源代码示例,包括服务器端的服务实现和配置文件,以及客户端的调用代码和配置。通过学习和分析这些代码,你可以更好地理解和掌握Spring RMI的实际应用。
接下来,我们将详细讨论如何创建和运行一个简单的RMI应用示例: 1. **定义远程接口**: 创建一个接口,如`MyRemoteInterface.java`,并声明远程方法。例如: ```java public interface MyRemoteInterface ...
**Spring RMI 示例** 在Java世界中,远程方法调用(Remote Method Invocation,RMI)是一种允许对象在不同 JVM(Java Virtual Machine)之间进行通信的技术。Spring框架对RMI进行了进一步的封装,使得使用RMI变得...