如何在Java中使用RMI

          遠程方法調用(RMI)是java中最早的關于處理對象分布的機制,了解其工作原理為今后學習RMI-IIOP,XML-RPC以及SOAP等都有較大的幫助。
          簡單歸納如下:
          1.RMI允許一個JVM實例中的所有對象調用另一個JVM實例中所有對象的方法;
          這兩個JVM可以運行在同一臺機器的不同進程上,也可以運行在不同的機器上。
          2.可以被遠程訪問的對象必須創建一個接口,并extends java.rmi.Remote接口;
          接口中定義的所有方法必須拋出java.rmi.RemoteException。
          3.可以被遠程訪問的對象除了要實現該接口外,還要extends java.rmi.server.UnicastRemoteObject;
          4.使用rmic工具生成_Stub類和_Skel類;
          在cmd窗口中,輸入:rmic 編譯好的實現類名
          若出現Class Not Found錯,則檢查class路徑設置是否正確。
          這樣,客戶端實際是在對_Stub對象進行操作,而不是對實際的遠程對象操作。服務器端則用_Skel對象和實際的遠程對象進行通信。
          5.編寫服務器端應用程序;
          需要用Naming.rebind()方法將注冊名與對象綁定在一起。
          6.編寫客戶端程序;
          首先要用Naming.lookup()方法搜索注冊名,之后cast成遠程接口。
          這里,如果是在不同的機器上分別開發客戶端和服務器端的話,則需要將接口復制到兩邊。
          最后,就是象調用本地方法一樣,調用該遠程接口的方法,實現分布計算的功能了。
          7.要運行RMI的話,需要啟動三個程序:
              7.1.在第一個cmd中,啟動rmiregistry,注意要在遠程實現類所在的目錄下運行;
              7.2.在第二個cmd中,啟動服務器端程序;
                  注意點:a).java參數(-Djava.security.policy)中要指定策略文件名(包含路徑)
                                  b).路徑中若目錄名里含有空格,須將整個路徑用""包起來,否則會報Class Not Found錯
                                  c).如果機器上安裝有防火墻軟件,可能會導致connect超時,異常中斷,須關閉防火墻
              7.3.在第三個cmd中,啟動客戶端程序;

           8.下面介紹如何在eclipse中運行一個簡單的RMI程序:
              8.1.先在eclipse里新建一個java項目,然后,創建RMI接口,實現類,服務器端程序,客戶端程序;
              8.2.打開cmd窗口,啟動rmiregistry;
              8.3.在eclipse里,右鍵點擊服務器端程序,打開“運行...”配置窗口,切換到“Arguments”,在“VM arguments”里輸入:-Djava.security.policy=xxxxxxx
              
              8.4.點擊“運行”,在控制臺里可以看到服務器程序正確運行;
              8.5.最后,右鍵點擊客戶端程序,運行;

           

           

           

           

           

           

           

           

          posted on 2010-06-09 23:46 koradji 閱讀(990) 評論(0)  編輯  收藏 所屬分類: Web Development

          <2010年6月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宝兴县| 江都市| 婺源县| 天台县| 贡觉县| 苍南县| 青田县| 临朐县| 农安县| 太湖县| 玉龙| 静乐县| 体育| 罗江县| 聊城市| 乌什县| 隆德县| 宁阳县| 西丰县| 水富县| 敦化市| 石阡县| 武义县| 绥江县| 乌海市| 光泽县| 尚志市| 周宁县| 曲水县| 武功县| 双江| 鸡西市| 射阳县| 获嘉县| 鱼台县| 郯城县| 桐庐县| 阜城县| 望都县| 韶关市| 金山区|