<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java RMI的簡(jiǎn)單例子

    Posted on 2007-05-26 09:41 E.ven 閱讀(28186) 評(píng)論(6)  編輯  收藏
     

    現(xiàn)在雖然我們很少用到RMI進(jìn)行編程,但是做為Java一個(gè)最早的分布式解決方案,我們還是有了解的必要,從例子開始吧(雖然是幾年前的了)!

    遠(yuǎn)程接口RmiHelloRemoteIntfc .java

    import java.rmi.*;

    public interface RmiHelloRemoteIntfc extends Remote
    {
       String helloRemoteObj(String client) throws RemoteException;
    }

    遠(yuǎn)程接口的實(shí)現(xiàn)類RmiHelloRemoteObj.java

    import java.rmi.server.*;
    import java.rmi.*;

    public class RmiHelloRemoteObj extends UnicastRemoteObject implements RmiHelloRemoteIntfc
    {

      public RmiHelloRemoteObj() throws RemoteException
      {
        super();
      }

      public String helloRemoteObj(String client) throws RemoteException
      {
         return "Hello World"+client;
      }

    }

    服務(wù)器類RmiHelloServer.java

    import java.io.*;
    import java.rmi.*;
    import java.rmi.server.*;
    import sun.applet.*;
    import java.rmi.registry.LocateRegistry;

    public class RmiHelloServer
    {

      public RmiHelloServer()
      {
      }
      public static void main(String[] args)
      {
        //創(chuàng)建并安裝安全管理器
        if(System.getSecurityManager()==null)
        {
           System.setSecurityManager(new RMISecurityManager());
        }

        try{
             //創(chuàng)建遠(yuǎn)程對(duì)象
             RmiHelloRemoteObj ttt=new RmiHelloRemoteObj();
             //啟動(dòng)注冊(cè)表
             LocateRegistry.createRegistry(2222);
             //獎(jiǎng)名稱綁定到對(duì)象
             Naming.rebind("http://Fangm:2222/helloObj",ttt);

             System.out.println("RMI服務(wù)器正在運(yùn)行。。。。。。");
          }
          catch(Exception e)
          {
             e.printStackTrace();
          }


      }
    }

    服務(wù)器端的權(quán)限文件RmiHelloServer.policy

    grant codeBase
    "file:/e:/download/rmitest/"
    {
     permission java.net.SocketPermission
          "*:1000-9999","accept,connect,listen,resolve";
    };

     

    現(xiàn)在就看看Client端是如何連接服務(wù)器和進(jìn)行遠(yuǎn)程方法的調(diào)用的吧

    import java.rmi.*;
    import java.rmi.server.*;

    public class RmiHelloClient
    {

      public RmiHelloClient()
      {
      }
      public static void main(String[] args)
      {
        //創(chuàng)建并安裝安全管理器
        if(System.getSecurityManager()==null)
        {
           System.setSecurityManager(new RMISecurityManager());
        }

        try{
              RmiHelloRemoteIntfc c1=(RmiHelloRemoteIntfc)Naming.lookup("rmi://Fangm:2222/helloObj");
              System.out.println(c1.helloRemoteObj("Everyone"));
        }
        catch(Exception e)
        {
           e.printStackTrace();
        }
        System.exit(0);

     

      }
    }

    Client端的權(quán)限文件RmiHelloClient.policy

    grant codeBase
    "file:/e:/download/rmitest/"
    {
      permission java.net.SocketPermission
          "*:1000-9999","accept,connect,listen,resolve";
    };

    好了,一個(gè)最簡(jiǎn)單的RMI例子就安無了,對(duì)了還少了最重要的一步,那就是編譯和運(yùn)行呢?我們就來了個(gè)Bat或Cmd的批處理來進(jìn)行吧,

    看看RmiHello.bat吧

    javac RmiHelloRemoteIntfc.java

    javac RmiHelloRemoteObj.java

    rmic RmiHelloRemoteObj

    javac RmiHelloServer.java

    javac RmiHelloClient.java

    echo 在另一個(gè)窗口啟動(dòng)服務(wù)器,請(qǐng)稍后。。。
    start java  -Djava.security.policy=RmiHelloServer.policy RmiHelloServer

    echo 運(yùn)行客戶程序。。。
    java -Djava.security.policy=RmiHelloClient.policy RmiHelloClient

    這個(gè)文件很簡(jiǎn)單吧!包你一試就通,雖然簡(jiǎn)單,不過對(duì)于初學(xué)者來說,還是很不錯(cuò)的哦!

    Feedback

    # re: Java RMI的簡(jiǎn)單例子  回復(fù)  更多評(píng)論   

    2008-06-12 08:18 by
    那現(xiàn)在用什么啊

    # re: Java RMI的簡(jiǎn)單例子  回復(fù)  更多評(píng)論   

    2008-07-31 15:40 by 嘉寶
    是啊
    那現(xiàn)在用什么技術(shù)實(shí)現(xiàn)分布式

    # re: Java RMI的簡(jiǎn)單例子[未登錄]  回復(fù)  更多評(píng)論   

    2008-09-12 14:46 by apple0668
    rmi結(jié)合spring提供接口,用起來更加方便了

    # re: Java RMI的簡(jiǎn)單例子  回復(fù)  更多評(píng)論   

    2009-06-22 13:28 by 真暈啊
    #&%(*&!@(#^!@(*#(!@#
    給一個(gè)錯(cuò)誤的例子來誤導(dǎo)我!
    注冊(cè)表的端口號(hào)跟主機(jī)端口號(hào)對(duì)不上的,主機(jī)地址又不知道是什么東東來的

    # re: Java RMI的簡(jiǎn)單例子[未登錄]  回復(fù)  更多評(píng)論   

    2010-01-13 15:36 by haha
    @真暈啊
    不是別人誤導(dǎo)你 而是你自己學(xué)而不精阿。艾

    # re: Java RMI的簡(jiǎn)單例子  回復(fù)  更多評(píng)論   

    2012-08-23 19:27 by 李鋒

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    posts - 27, comments - 15, trackbacks - 0, articles - 1

    Copyright © E.ven

    主站蜘蛛池模板: 思思久久99热免费精品6| 中文字幕乱码亚洲精品一区| 美女黄频免费网站| 国产精品深夜福利免费观看| 亚洲人成网站18禁止| 在线免费观看一级毛片| 亚洲成aⅴ人在线观看| 久热中文字幕在线精品免费| 中文字幕亚洲免费无线观看日本| 最近免费中文字幕高清大全| 亚洲综合无码一区二区三区| 无码国产精品一区二区免费| 亚洲H在线播放在线观看H| 夜夜爽免费888视频| www亚洲精品久久久乳| 一区二区三区亚洲视频| 手机永久免费的AV在线电影网| 国产成人亚洲综合| 久久成人免费大片| 亚洲另类春色国产精品| 日本高清免费不卡视频| 日韩精品无码免费视频| 国产亚洲精品激情都市| 日本一区二区免费看| 亚洲成人免费网址| 免费a在线观看播放| 你好老叔电影观看免费| 亚洲精品成人图区| 免费激情视频网站| free哆拍拍免费永久视频| 亚洲一二成人精品区| 麻豆国产入口在线观看免费| 2022国内精品免费福利视频| 亚洲美女视频一区| 国产成人综合久久精品免费| a级特黄毛片免费观看| 亚洲一区二区三区乱码在线欧洲| 亚洲成网777777国产精品| 99爱在线观看免费完整版| 亚洲日本成本人观看| 亚洲熟妇av一区二区三区漫画|