RMI(Remote Method Invocation)
RMI是分布式对象软件包,它简化了在多台计算机上的JAVA应用之间的通信。
public interface Fibonacci extends Remote {
public BigInteger getFibonacci(int n) throws RemoteException;
public BigInteger getFibonacce(BigInteger n) throws RemoteException;
}
public class FibonacciImpl extends UnicastRemoteObject implements Fibonacci {
public FibonacciImpl() throws RemoteException{
super();
}
public BigInteger getFibonacci(int n) throws RemoteException{
return this.getFibonacce(new BigInteger(Long.toString(n)));
}
public BigInteger getFibonacce(BigInteger n) throws RemoteException {
System.out.println("Calculating the" + n +"th Fibonacci number");
BigInteger zero = new BigInteger("0");
BigInteger one = new BigInteger("1");
if(n.equals(zero)) return one;
if(n.equals(one)) return one;
BigInteger i = one;
BigInteger low = one;
BigInteger high = one;
while(i.compareTo(n) == -1){
BigInteger temp = high;
high = high.add(low);
low = temp;
i = i.add(one);
}
return high;
}
}
public class FibonacciServer {
//服务器启动
public static void main(String[] args) {
try {
//加载安全管理器
//System.setSecurityManager(new RMISecurityManager() );
System.out.println("begin 1");
FibonacciImpl f = new FibonacciImpl();
Naming.rebind("fibonacci", f);
System.out.println("Fibonacci Server ready.");
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
}
}
public class FibonacciClient {
/**
* @param args客户端
*/
public static void main(String[] args) {
String rmiUrl = "rmi://localhost/fibonacci";
BigInteger index = new BigInteger("30");
try {
Object o = Naming.lookup(rmiUrl);
Fibonacci calculator = (Fibonacci)o;
BigInteger f = calculator.getFibonacce(index);
System.out.println("The " + index + "th Fibonacci number is "+ f);
} catch (Exception e) {
e.printStackTrace();
}
}
}
复制以上代码到Eclipse,按如下步骤操作:
1、编译桩: 在windows中,在DOS提示符下运行 rmic 包.FibonacciImpl
2、确保所有桩和服务器类位于服务器的类路径中。
3、在windows中,要在DOS提示符下启动注册表,如下:C:\start rmiregistry
4、运行FibonacciServer 和 FibonacciClient 即可
分享到:
相关推荐
在"Rmi示例 Rmi代码示例"中,我们有两个核心文件:RmiServer和RmiClient,分别代表了RMI系统中的服务端和客户端。以下是对这两个文件及其涉及的知识点的详细解释: 1. **RMI服务端**(RmiServer): - **接口定义*...
Java RMI(Remote Method Invocation,远程方法调用)是一种在分布式...总之,RMI示例展示了如何在Java中创建、部署和调用远程服务。通过理解这个示例,开发者可以更好地掌握RMI的工作原理,并在实际项目中灵活运用。
在"springRMI示例"中,我们将探讨如何利用Spring框架实现RMI来构建一个能够执行引擎机功能的系统,用于业务处理。 ### Spring RMI 的核心组件 1. **Remoting Beans**: 在Spring中,远程接口和其实现被定义为普通的...
我的博客《Java中的RMI(远程方法调用)》的示例代码
在Java RMI示例中,我们通常会涉及到以下几个关键知识点: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口,必须继承自java.rmi.Remote。每个方法都需抛出java.rmi.RemoteException,表明这些方法...
本篇文章将通过一个简单的RMI示例,帮助你理解和掌握如何使用RMI进行分布式编程。 首先,理解RMI的基本概念是非常重要的。RMI允许Java对象作为远程对象暴露给其他Java应用程序,这些应用程序可以像调用本地对象一样...
RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个重要特性,它允许Java对象在不同的Java虚拟机(JVM)...通过实践这个RMI示例,你不仅能掌握RMI的基本用法,还能进一步提升在分布式系统开发中的技能。
一个简单的RMI示例步骤如下: 1. 定义远程接口,如: ```java import java.rmi.Remote; import java.rmi.RemoteException; public interface MyRemoteInterface extends Remote { String doSomething(String ...
孙维琴的RMI示例通常包括以下几个部分: 1. 创建远程接口:定义一个接口,继承自Remote接口,并声明需要暴露的远程方法。 ```java public interface MyRemote extends Remote { String doSomething(String input)...
此 repo 的开发已停止。 RMI计算器 带有 SOAP 服务的 RMI 示例代码
spring-rmi-示例 项目是从 code.google.com/p/springrmiexample 导出的,我这边稍作修改 这个项目是如何在 Spring 的帮助下设置 RMI 服务器和客户端的示例。 该项目包含2个子项目: Spring RMI 示例服务器,即 Web...
"www.pudn.com.txt"可能是一个包含相关说明或者下载链接的文本文件,而"rmi"可能是包含具体RMI示例代码的文件夹。 在RMI的基本流程中: 1. **创建远程接口**:首先,你需要定义一个Java接口,该接口声明了可以被...
该项目是maven工程,由三个子模块,一个定义api和model实体,一个是远程服务(provider),一个是请求远程服务的调用方(consumer) 需要先build api, 然后再运行远程服务,最后运行调用方,在打包完成后,两者可以运行...
在这个"RMI.rar_Java RMI"压缩包中,包含了一些基础的RMI示例程序,可以帮助初学者理解和实践Java RMI的基本概念和用法。 1. **RMI架构**:RMI的核心思想是客户端和服务器之间的通信。客户端通过调用远程对象的接口...
在这个RMI示例中,"RMI"可能包含了服务器端和客户端的代码,包括实现的远程接口、服务器端启动程序、客户端调用程序等。"www.pudn.com.txt"可能是相关教程或说明文档,用于解释如何运行和理解这个示例。 为了运行这...
这里给出一个简单的RMI示例: 1. **定义远程接口**: ```java public interface HelloIFC extends Remote { String sayHello() throws RemoteException; } ``` 2. **实现远程接口**: ```java public class...
在“rmi.rar_Java RMI_RMI source code_java RMI simple_rmi”这个压缩包中,我们可以预见到包含了一些简单的RMI示例代码和相关的文档,比如“www.pudn.com.txt”可能是一个文档链接或者资源说明,而“新建文件夹”...
这个简单的RMI示例可以帮助我们理解以下关键概念: - 远程接口:定义了客户端和服务器之间的通信协议。 - 远程对象:实现了远程接口,实际处理远程调用。 - RMI注册表:作为远程对象的服务目录,客户端通过它找到...
5. **RMI示例** - 一个简单的RMI应用可能包括一个远程接口、实现该接口的服务器端类、客户端调用类,以及启动服务器和客户端的主程序。文档中的示例应该涵盖了这些部分,演示了如何创建、导出、注册远程对象,以及...
6. `build.xml` (如果存在): Ant构建文件,用于编译和运行RMI示例。 要运行此示例,首先确保JDK已经安装,并设置好`JAVA_HOME`环境变量。然后,在命令行中,先运行`RMIServer.bat`启动服务器,接着运行`RMIClient....