`

RMI小例子

阅读更多

1.创建远程接口及声明远程方法(HelloInterface.java)

package com.unmi;
import java.rmi.*; 
/**   
 * 远程接口必须扩展接口java.rmi.Remote   
 */   
public interface HelloInterface extends Remote    
{    
   /**   
    * 远程接口方法必须抛出 java.rmi.RemoteException   
    */   
   public String say() throws RemoteException;    
}

 

 

2.实现远程接口及远程方法(继承UnicastRemoteObject)Hello.java

package com.unmi;    
   
import java.rmi.*;    
import java.rmi.server.*;    
   
/**   
 * 扩展了UnicastRemoteObject类,并实现远程接口 HelloInterface   
 */   
public class Hello extends UnicastRemoteObject implements HelloInterface    
{    
   private String message;    
   
   /**   
    * 必须定义构造方法,即使是默认构造方法,也必须把它明确地写出来,因为它必须抛出出RemoteException异常   
    */   
   public Hello(String msg) throws RemoteException    
   {    
      message = msg;    
   }    
   
   /**   
    * 远程接口方法的实现   
    */   
   public String say() throws RemoteException    
   {    
      System.out.println("Called by HelloClient");    
      return message;    
   }    
}    

 

 

3. 启动RMI注册服务,并注册远程对象(HelloServer.java)

package com.unmi;    
   
import java.rmi.Naming;    
import java.rmi.registry.LocateRegistry;    
   
public class HelloServer    
{    
   /**   
    * 启动 RMI 注册服务并进行对象注册   
    */   
   public static void main(String[] argv)    
   {    
      try   
      {    
         //启动RMI注册服务,指定端口为1099 (1099为默认端口)    
         //也可以通过命令 $java_home/bin/rmiregistry 1099启动    
         //这里用这种方式避免了再打开一个DOS窗口    
         //而且用命令rmiregistry启动注册服务还必须事先用RMIC生成一个stub类为它所用    
         LocateRegistry.createRegistry(1099);    
            
         //创建远程对象的一个或多个实例,下面是hello对象    
         //可以用不同名字注册不同的实例    
         HelloInterface hello = new Hello("Hello, world!");    
            
         //把hello注册到RMI注册服务器上,命名为Hello    
         Naming.rebind("Hello", hello);    
             
         //如果要把hello实例注册到另一台启动了RMI注册服务的机器上    
         //Naming.rebind("//192.168.1.105:1099/Hello",hello);    
            
         System.out.println("Hello Server is ready.");    
      }    
      catch (Exception e)    
      {    
         System.out.println("Hello Server failed: " + e);    
      }    
   }    
}

 

 


4. 客户端查找远程对象,并调用远程方法(HelloClient)

package com.unmi;    
   
import java.rmi.Naming;    
   
public class HelloClient    
{    
   /**   
    * 查找远程对象并调用远程方法   
    */   
   public static void main(String[] argv)    
   {    
      try   
      {    
         HelloInterface hello = (HelloInterface) Naming.lookup("Hello");    
             
         //如果要从另一台启动了RMI注册服务的机器上查找hello实例    
         //HelloInterface hello = (HelloInterface)Naming.lookup("//192.168.1.105:1099/Hello");    
             
         //调用远程方法    
         System.out.println(hello.say());    
      }    
      catch (Exception e)    
      {    
         System.out.println("HelloClient exception: " + e);    
      }    
   }    
}

 

 

5. 执行程序:启动服务HelloServer;运行客户端HelloClient进行调用

(1)打开一个Dos窗口执行命令 java com.unmi.HelloServer 启动服务HelloServer

E:workspaceTestRMIbin>java com.unmi.HelloServer
Hello Server is ready.

运行成功则可以看到 Hello Server is ready

(2)打开另一个Dos窗口执行命令 java com.unmi.HelloClient 运行客户端程序

E:workspaceTestRMIbin>java com.unmi.HelloClient
Hello, world!

调用成功则可以看到 Hello, world!

并且在启动服务端的窗口中看到紧跟 Hello Server is ready. 打印出
Called by HelloClient

0
0
分享到:
评论

相关推荐

    SpringRMI小例子

    SpringRMI小例子代码,仅供参考。SpringRMI小例子代码,仅供参考。

    Spring RMI小例子

    闲来无事,做了个Spring RMI的小例子,非常易懂。

    spring rmi 小例子

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/539379

    spring整合RMI小例子

    NULL 博文链接:https://sharron5.iteye.com/blog/794531

    JAVA RMI简单例子

    最简单 最有效而且是最易懂的rmi理解例子

    rmi简单例子

    rmi简单例子,service实例和clent实例

    spring RMI简单例子

    spring RMI 简单例子

    RMI例子

    RMI例子,可以试试看

    RMI应用开发小例子源码.rar

    RMI应用开发小例子源码.rar RMI应用开发小例子源码.rar RMI应用开发小例子源码.rar

    java RMI简单例子

    Java的远程方法(RMI)例子,有兴趣 ,可以下载学学!EJB底层用的就是Java的RMI

    Java RMI的简单例子

    现在虽然我们很少用到RMI进行编程,但是做为Java一个最早的分布式解决方案,我们还是有了解的必要,从例子开始吧!

    rmi的一个例子源码

    rmi的例子,rmi的例子,rmi的例子,rmi的例子

    RMI的例子和做作录象

    RMI的例子和做作录象 其中有个例子是聊天室的 大家不要光下不顶啊!!!

    分布式调用RMI例子程序

    数据库系统概论分布式调用RMI例子程序分布式调用RMI例子程序分布式调用RMI例子程序分布式调用RMI例子程序

    RMI入门好例子

    最简单的RMI入门好例子,看看远程调用的效果吧,直接在eclipse下导入就可以运行。

    rmi实现例子

    java远程调用rmi 实现小例子,将imp.zip包放到myeclipse工程里,即可运行客户端以及服务端

    java RMI入门例子

    通过这个例子可以大概了解RMI的很多机制

    较为复杂的rmi的例子.rar_rmi

    说明的是用在客户端输入两个数字,在服务器端实现其加法运算,然后返回结果给客户端的rmi例子,这个例子较为复杂。此例子经过本人的调试通过。欢迎大家享用。

    RMI入门例子和教程,分初级、进阶,还有与Spring整合的

    自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic...还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些简单的教程。

    JAVA RMI 实例

    java rmi小例子源代码 ,运行Reg.java ,再执行Client客户端代码就能看效果。如果在不同jvm下执行,注意接口定义包路径客服端和服务端必须保持一致。 客服端包含文件有服务端接口的定义文件。

Global site tag (gtag.js) - Google Analytics