开发RMI步骤:
1.编写服务接口,此接口须直接或间接继承至Remote接口,且此服务接口中的所有方法必须声明抛出受查RemoteException异常.
package com.pa.rmi.test;
import java.rmi.Remote;
public interface BaseRemoteInterface extends Remote {
}
2.编写服务接口的实现类,继承UnicastRemoteObject,并实现服务接口.UnicastRemoteObject是一个用于构建RMI Server的便利基类,它可以处理大部分服务器创建的工作,如当调用其构造函数时,将自动创建Socket,并在给定的端口上监听客户端的请求.
package com.pa.rmi.test.upload;
import java.rmi.RemoteException;
import com.pa.rmi.test.BaseRemoteInterface;
public interface FileUploadHandler extends BaseRemoteInterface{
public boolean upload(String src,String dest)throws FileUploadException,RemoteException;
}
3.使用rmic生成此实现类的stub(存根)和skeleton(骨架)
如何生成stub请参见本人的另一篇文章:
JDK1.6 rmic命令使用
4.创建一个服务器,用于发布2中写好的类
package com.pa.rmi.test;
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import com.pa.rmi.test.upload.FileUploadHandler;
import com.pa.rmi.test.upload.FileUploadHandlerImpl;
public class RMIRegistHelper {
public static void regist(Remote remoteObject, String name,Integer port ) {
try {
if(port==null||port==0){
port = 1099;
}
LocateRegistry.createRegistry(port);
Naming.bind("rmi://localhost:"+port+"/" + name, remoteObject);
System.out.println(name+" bound successful,listen on port :"+port);
} catch (RemoteException e) {
} catch (AlreadyBoundException e) {
} catch (MalformedURLException e) {
}
}
public static void main(String args[]) throws Exception {
FileUploadHandler handler = new FileUploadHandlerImpl();
regist(handler,"fileUploadHandler",null);
}
}
5.创建一个客户程序进行RMI调用
package com.pa.rmi.test.upload;
import java.net.MalformedURLException;
import java.rmi.*;
public class ClientTest {
public static void main(String args[]) {
try {
// 在RMI服务注册表中查找名称为fileUploadHandler的对象,并调用其上的方法
FileUploadHandler fileUploadHandler = (FileUploadHandler) Naming.lookup("rmi://localhost:1099/fileUploadHandler");
System.out.println(fileUploadHandler.upload("",""));
} catch (NotBoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
二、RMI开发步骤 1. 定义远程接口:创建一个接口,继承`Remote`,并声明远程方法。 2. 实现远程接口:创建实现该接口的类,包含具体业务逻辑。 3. 创建RMIServer:在服务器端启动RMI服务,创建远程对象实例,并在RMI...
结合"Zookeeper+rmi开发"的标题和描述,我们可以理解这是一个关于如何使用ZooKeeper进行服务注册与发现,并通过RMI实现远程调用的示例代码。在这样的场景下,ZooKeeper可能被用作服务注册中心,各服务节点通过...
在IT行业中,远程方法调用(Remote Method Invocation,RMI)和Spring框架是两个非常重要的概念,它们在分布式系统开发中发挥着关键作用。RMI是Java平台提供的一种技术,用于在不同Java虚拟机(JVM)之间进行对象间...
"Java RMI 开发技术"这份PDF文档应该会详细讲解RMI的基本概念、使用步骤、示例代码以及最佳实践,帮助读者深入理解并掌握Java RMI技术。 总的来说,Java RMI是Java分布式系统开发中的重要工具,它提供了一种简单、...
RMI应用开发的关键步骤包括: 1. **定义接口**:定义RMI服务的接口,其中包含所有需要远程调用的方法。 2. **实现接口**:在服务器端,创建一个实现接口的类,并实现所有方法。 3. **注册服务**:在服务器端,使用` ...
本实验报告主要介绍了 Java RMI(Remote Method Invocation,远程方法调用)的基本概念和实现步骤。RMI 是一种分布式对象通讯机制,允许运行在一个 Java 虚拟机的对象调用运行在另一个 Java 虚拟机上对象的方法。 ...
C++ Remote Method Invocation (RMI) 是一种在分布式系统中实现对象间远程调用的技术,它允许一个程序在一台计算机上执行操作,而这些操作实际上是在另一台计算机上的对象上进行的。C++ 并非原生支持RMI,但通过第三...
- **RMI的步骤**:创建远程接口,实现远程对象,导出远程对象,将远程对象注册到注册表,最后从客户端通过注册表获取远程对象引用并调用方法。 - **安全性**:RMI的安全性涉及SSL/TLS加密、数字签名以及访问控制,...
RMI是Java网络编程的重要组成部分,使得开发分布式应用程序变得更加简单。本文档详细介绍了RMI的使用方法和工作机制,并配以丰富的实例进行讲解。 1. **RMI基本概念** - **远程对象**:在远程服务器上的对象,可以...
RMI是Java在分布式计算领域的重要工具,它简化了网络应用的开发,使得开发者可以像操作本地对象一样操作远程对象。 首先,我们需要了解RMI的基本概念。RMI系统由两部分组成:服务器端(Server)和客户端(Client)...
2. **RMI的步骤:** - **创建远程接口:**定义一个接口,声明所有的远程方法。 - **实现远程接口:**创建远程接口的实现类,并实现接口中的所有方法。 - **导出远程对象:**使用`java.rmi.Naming`或`java.rmi....
实现Ehcache RMI集群,需要以下步骤: 1. **配置Ehcache**:首先,你需要在每个节点上配置Ehcache,指定使用RMI replication策略。这通常涉及到在`ehcache.xml`配置文件中设置`replicationStrategy`为`rmi`,并提供...
Java开发工具包(JDK)自带了RMI的支持,包括编译、运行和调试工具。例如,`rmic`用于生成远程对象的stub和skeleton,`rmiregistry`用于启动RMI注册表,`rmid`管理服务器端的Java虚拟机。 **安全性与性能优化** ...
在Spring中,配置RMI服务通常涉及以下步骤: - **创建远程接口**:定义一个继承自`java.rmi.Remote`的接口,声明远程方法。 - **实现远程接口**:提供接口的实现,这些方法将在服务器端执行。 - **配置RMI服务**:...
Java Remote Method Invocation (RMI) 是Java平台提供的一种分布式计算技术,允许开发者在不同Java虚拟机(JVM)之间调用远程对象的方法,从而实现分布式应用程序的开发。RMI简化了网络编程的复杂性,并且与Java的面向...
RMI使得开发者可以像调用本地方法一样调用远程对象的方法,极大地简化了分布式系统的设计和开发。 ### RMI基本概念 1. **远程对象(Remote Object)**:这是RMI的核心,它是一个实现了特定接口(继承自java.rmi....
Java自带了一些用于RMI开发的工具: - `rmiregistry`:RMI注册表服务,用于存储和查找远程对象。 - `rmic`:编译远程接口,生成必要的Stub和Skeleton类。 - `rmid`:RMI运行时守护进程,管理远程对象的激活和持久化...
RMI的实现机制是Java分布式应用系统的核心解决方案之一,对于Java分布式应用系统的开发具有重要的意义。 RMI的实现机制是Java分布式应用系统的核心解决方案之一,RMI使得Java对象之间可以进行远程方法调用,实现...
这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...