1 RMI 简介
RMI ,远程方法调用(Remote Method Invocation) 是Enterprise javaBeans的支柱,是建立分布式java应用程序的方便途径。RMI 是非常容易使用的,但是它也是非常强大的。RMI是基于接口,RMI 构架记入一个重要的原理:定义接口定义即可的具体实现是分开的,也就是面向接口编程。
2 RMI 的主要步骤:
(1) 创建远程接口及声明远程方法
(2) 实现远程接口及远程方法 (需要继承UnicastRemoteObject类)
(3) 启动RMI注解服务,并注册远程对象
(4) 客服端查找远程对象,并调用远程方法
(5) 运行测试
3 简单例子
服务端:
定义接口:
public interface RimMonitorService extends Remote {
public String interactive()throws RemoteException;
}
接口实现类
public class RimMonitorServerImpl extends UnicastRemoteObject implements RimMonitorService {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String interactive(int index) throws RemoteException {
switch(index){
case 1:
return "成功的!";
case 2:
return "失败的!";
}
return "";
}
public RimMonitorServerImpl() throws RemoteException {
super();
}
}
服务端注册:
public class RmiServer {
public String ip="localhost";
public int port=8889;
public void init(){
try {
LocateRegistry.createRegistry(port);
RimMonitorService rimMonitorService=new RimMonitorServerImpl();
Naming.bind("//"+ip+":"+port+"/com", rimMonitorService);
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (AlreadyBoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
RmiServer server=new RmiServer();
server.init();
System.out.println("服务初始化成功!");
}
客服端
接口定义
public interface RimMonitorService extends Remote {
public String interactive(int index)throws RemoteException;
}
客服端调用
public class RimClient {
public String ip="localhost";
public int port=8889;
public RimMonitorService rimService;
public String interactive(int funindex) throws RemoteException{
rimService=getRimServer();
if(rimService!=null)
return rimService.interactive(funindex);
return "";
}
public RimMonitorService getRimServer(){
try {
rimService=(RimMonitorService)Naming.lookup("rmi://"+ ip+":"+port+"/com");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
return rimService;
}
public static void main(String[] args) {
RimClient client=new RimClient();
try {
System.out.println(client.interactive(1));
System.out.println(client.interactive(2));
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在这里需要 注意的是:客服端调用 可能会出现
java.lang.ClassNotFoundException: xx.xx(no security manager: RMI class loader disabled)
这里的接口所在的包必须和服务器所在的包名一样,同时接口名称也必须一样,
相关推荐
这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...
以下是对"java RMI简单例子"的详细解释: 1. **RMI的基本概念**: - **远程对象**:在RMI中,一个对象如果可以在不同的JVM上执行其方法,那么就被称为远程对象。 - **远程接口**:定义远程对象需要实现的接口,...
远程服务的接口定义 远程服务接口的具体实现 桩(Stub)和框架... 一个RMI命名服务,它允许客户端去发现这个远程服务 类文件的提供者(一个HTTP或者FTP服务器) 一个需要这个远程服务的客户端程序
这个简单的示例展示了如何创建一个基本的Java RMI应用程序,包括远程接口、服务器端和客户端。 首先,我们来看远程接口。在这个例子中,`HelloIn`接口定义了一个方法`sayHello()`,该方法抛出`RemoteException`。这...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同网络节点上的Java对象之间进行透明的交互。在Java RMI中,一个对象可以调用另一个位于不同JVM(Java虚拟机)...
通过这个简单的实例,学习者可以了解到Java RMI的基本工作流程,以及如何在实践中部署和使用远程对象。深入研究后,还可以探索更复杂的场景,如并发调用、安全性控制、容错机制等,以构建更加健壮和高效的分布式系统...
创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...
Java RMI实例
### Java RMI基础知识与示例解析 ...通过以上详细分析,我们可以清楚地了解到如何使用Java RMI来实现简单的分布式应用。尽管RMI在现代Java开发中的使用频率不高,但了解其基本原理和技术细节仍然具有一定的价值。
在这个“基于JAVA RMI的聊天室”项目中,开发者利用RMI技术构建了一个简单的多用户交互系统,让用户可以在不同的计算机上进行实时聊天。 ### 1. JAVA RMI原理 RMI允许Java对象在不同的Java虚拟机之间进行方法调用...
这个简单的例子将引导我们了解如何利用Java RMI实现远程调用。 首先,我们要创建远程接口。在Java RMI中,远程接口是一个实现了`java.rmi.Remote`接口的Java接口。接口中声明的方法将在客户端调用,实际上会在...
根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。...这个例子展示了如何利用RMI技术来构建分布式应用程序。
3. **运行RMI实例** - **启动RMI注册表**:运行`rmiregistry`命令启动RMI注册表服务。 - **编译代码**:确保所有的Java源代码都已正确编译为字节码文件。 - **运行服务器**:使用`java`命令运行服务器端程序,这...
这个"java_rmi.rar"压缩包包含的资源可能是一个Java RMI的实例教程或者代码示例。"www.pudn.com.txt"可能是一个包含相关说明或者下载链接的文本文件,而"rmi"可能是包含具体RMI示例代码的文件夹。 在RMI的基本流程...
在这个"JAVA RMI实现程序实例"中,我们将会探讨如何使用RMI实现一个简单的“Hello, World”示例,并已经在两台机器上进行了成功的测试。 首先,我们需要了解RMI的基本概念。RMI的核心思想是将对象的方法调用转化为...
java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。
在Java RMI实例中,我们通常会经历以下几个步骤: 1. **创建远程接口**:首先,我们需要定义一个远程接口,这个接口需要扩展`java.rmi.Remote`。远程接口中的所有方法都需要抛出`RemoteException`,这是因为远程...
- RMI默认使用简单认证,可以通过设置Java安全策略加强安全性。 - 为RMI连接启用SSL可以提供加密通信,防止中间人攻击。 7. **性能优化**: - 使用Stub和Skeleton机制可以减少网络传输的数据量。 - 考虑使用RMI...
Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...