`
malipei
  • 浏览: 71057 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

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代码示例

    在"Rmi示例 Rmi代码示例"中,我们有两个核心文件:RmiServer和RmiClient,分别代表了RMI系统中的服务端和客户端。以下是对这两个文件及其涉及的知识点的详细解释: 1. **RMI服务端**(RmiServer): - **接口定义*...

    RMI示例程序,RMI学习

    Java RMI(Remote Method Invocation,远程方法调用)是一种在分布式...总之,RMI示例展示了如何在Java中创建、部署和调用远程服务。通过理解这个示例,开发者可以更好地掌握RMI的工作原理,并在实际项目中灵活运用。

    springRMI示例

    在"springRMI示例"中,我们将探讨如何利用Spring框架实现RMI来构建一个能够执行引擎机功能的系统,用于业务处理。 ### Spring RMI 的核心组件 1. **Remoting Beans**: 在Spring中,远程接口和其实现被定义为普通的...

    JavaRMI示例程序

    我的博客《Java中的RMI(远程方法调用)》的示例代码

    Java RMI 示例

    在Java RMI示例中,我们通常会涉及到以下几个关键知识点: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口,必须继承自java.rmi.Remote。每个方法都需抛出java.rmi.RemoteException,表明这些方法...

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

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

    RMI可运行的示例代码

    RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个重要特性,它允许Java对象在不同的Java虚拟机(JVM)...通过实践这个RMI示例,你不仅能掌握RMI的基本用法,还能进一步提升在分布式系统开发中的技能。

    java简单示例rmi

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

    rmi 孙维琴示例和电子版

    孙维琴的RMI示例通常包括以下几个部分: 1. 创建远程接口:定义一个接口,继承自Remote接口,并声明需要暴露的远程方法。 ```java public interface MyRemote extends Remote { String doSomething(String input)...

    RMICalculator:带有 SOAP 服务的 RMI 示例代码

    此 repo 的开发已停止。 RMI计算器 带有 SOAP 服务的 RMI 示例代码

    spring-rmi-example:Spring rmi 示例,取自 code.google.com,因为 code.google.com 将停止使用

    spring-rmi-示例 项目是从 code.google.com/p/springrmiexample 导出的,我这边稍作修改 这个项目是如何在 Spring 的帮助下设置 RMI 服务器和客户端的示例。 该项目包含2个子项目: Spring RMI 示例服务器,即 Web...

    java_rmi.rar_RMI java_java.rmi

    "www.pudn.com.txt"可能是一个包含相关说明或者下载链接的文本文件,而"rmi"可能是包含具体RMI示例代码的文件夹。 在RMI的基本流程中: 1. **创建远程接口**:首先,你需要定义一个Java接口,该接口声明了可以被...

    java rmi示例

    该项目是maven工程,由三个子模块,一个定义api和model实体,一个是远程服务(provider),一个是请求远程服务的调用方(consumer) 需要先build api, 然后再运行远程服务,最后运行调用方,在打包完成后,两者可以运行...

    RMI.rar_Java RMI

    在这个"RMI.rar_Java RMI"压缩包中,包含了一些基础的RMI示例程序,可以帮助初学者理解和实践Java RMI的基本概念和用法。 1. **RMI架构**:RMI的核心思想是客户端和服务器之间的通信。客户端通过调用远程对象的接口...

    RMI.rar_DEMO_rmi

    在这个RMI示例中,"RMI"可能包含了服务器端和客户端的代码,包括实现的远程接口、服务器端启动程序、客户端调用程序等。"www.pudn.com.txt"可能是相关教程或说明文档,用于解释如何运行和理解这个示例。 为了运行这...

    java rmi java rmi

    这里给出一个简单的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.rar_Java RMI_RMI source code_java RMI simple_rmi”这个压缩包中,我们可以预见到包含了一些简单的RMI示例代码和相关的文档,比如“www.pudn.com.txt”可能是一个文档链接或者资源说明,而“新建文件夹”...

    RMI入门好例子

    这个简单的RMI示例可以帮助我们理解以下关键概念: - 远程接口:定义了客户端和服务器之间的通信协议。 - 远程对象:实现了远程接口,实际处理远程调用。 - RMI注册表:作为远程对象的服务目录,客户端通过它找到...

    java_rmi文档

    5. **RMI示例** - 一个简单的RMI应用可能包括一个远程接口、实现该接口的服务器端类、客户端调用类,以及启动服务器和客户端的主程序。文档中的示例应该涵盖了这些部分,演示了如何创建、导出、注册远程对象,以及...

    JAVA RMI简单例子

    6. `build.xml` (如果存在): Ant构建文件,用于编译和运行RMI示例。 要运行此示例,首先确保JDK已经安装,并设置好`JAVA_HOME`环境变量。然后,在命令行中,先运行`RMIServer.bat`启动服务器,接着运行`RMIClient....

Global site tag (gtag.js) - Google Analytics