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

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

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

    Java RMI的簡單例子

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

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

    遠程接口RmiHelloRemoteIntfc .java

    import java.rmi.*;

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

    遠程接口的實現類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;
      }

    }

    服務器類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)
      {
        //創建并安裝安全管理器
        if(System.getSecurityManager()==null)
        {
           System.setSecurityManager(new RMISecurityManager());
        }

        try{
             //創建遠程對象
             RmiHelloRemoteObj ttt=new RmiHelloRemoteObj();
             //啟動注冊表
             LocateRegistry.createRegistry(2222);
             //獎名稱綁定到對象
             Naming.rebind("http://Fangm:2222/helloObj",ttt);

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


      }
    }

    服務器端的權限文件RmiHelloServer.policy

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

     

    現在就看看Client端是如何連接服務器和進行遠程方法的調用的吧

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

    public class RmiHelloClient
    {

      public RmiHelloClient()
      {
      }
      public static void main(String[] args)
      {
        //創建并安裝安全管理器
        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端的權限文件RmiHelloClient.policy

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

    好了,一個最簡單的RMI例子就安無了,對了還少了最重要的一步,那就是編譯和運行呢?我們就來了個Bat或Cmd的批處理來進行吧,

    看看RmiHello.bat吧

    javac RmiHelloRemoteIntfc.java

    javac RmiHelloRemoteObj.java

    rmic RmiHelloRemoteObj

    javac RmiHelloServer.java

    javac RmiHelloClient.java

    echo 在另一個窗口啟動服務器,請稍后。。。
    start java  -Djava.security.policy=RmiHelloServer.policy RmiHelloServer

    echo 運行客戶程序。。。
    java -Djava.security.policy=RmiHelloClient.policy RmiHelloClient

    這個文件很簡單吧!包你一試就通,雖然簡單,不過對于初學者來說,還是很不錯的哦!

    Feedback

    # re: Java RMI的簡單例子  回復  更多評論   

    2008-06-12 08:18 by
    那現在用什么啊

    # re: Java RMI的簡單例子  回復  更多評論   

    2008-07-31 15:40 by 嘉寶
    是啊
    那現在用什么技術實現分布式

    # re: Java RMI的簡單例子[未登錄]  回復  更多評論   

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

    # re: Java RMI的簡單例子  回復  更多評論   

    2009-06-22 13:28 by 真暈啊
    #&%(*&!@(#^!@(*#(!@#
    給一個錯誤的例子來誤導我!
    注冊表的端口號跟主機端口號對不上的,主機地址又不知道是什么東東來的

    # re: Java RMI的簡單例子[未登錄]  回復  更多評論   

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

    # re: Java RMI的簡單例子  回復  更多評論   

    2012-08-23 19:27 by 李鋒

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

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

    Copyright © E.ven

    主站蜘蛛池模板: 国产在线一区二区综合免费视频| 亚洲高清一区二区三区电影| 久久久久久噜噜精品免费直播 | 亚洲精品无播放器在线播放| 免费99精品国产自在现线| 亚洲酒色1314狠狠做| 麻豆高清免费国产一区| 亚洲av极品无码专区在线观看| 成人免费的性色视频| 亚洲AV成人影视在线观看| 韩国二级毛片免费播放| 国产AV无码专区亚洲AV麻豆丫 | 国产亚洲av片在线观看16女人| 中文字幕在线免费看| 亚洲AV无码专区国产乱码4SE| 午夜无码A级毛片免费视频| 亚洲综合激情视频| 好男人视频在线观看免费看片| 国产精品亚洲精品爽爽| 亚洲自偷自偷在线制服| 无码人妻AV免费一区二区三区| 亚洲成年人免费网站| 在线免费观看a级片| jizz免费在线观看| 亚洲最新永久在线观看| 亚洲免费综合色在线视频| 羞羞视频免费网站入口| 亚洲开心婷婷中文字幕| 嫖丰满老熟妇AAAA片免费看| 黄网站色视频免费观看45分钟| 亚洲成av人片在线观看无码不卡| free哆啪啪免费永久| 在线观看亚洲专区| 久久亚洲AV无码精品色午夜麻| 免费电视剧在线观看| 一区视频免费观看| 国产精品亚洲片在线va| 久久伊人亚洲AV无码网站| 波多野结衣在线免费观看| 一级人做人爰a全过程免费视频| 亚洲综合视频在线|