Eclipse下的RMI編程

現在Eclipse使用的比較多,而其功能的可擴展性也是超級強大,可以將多種工具和開發技術通過插件包的形式融合進來。這裏說一下怎麼通過RMI Plugin在Eclipse裏面調試RMI程序。

一、準備安裝包 
       Eclipse的下載地址這裏就不說了。這裏提供RMI Plugin for Eclipse 的下載地址:       http://www.genady.net/rmi/v20/downloads.html

       破解版下載地址:http://crackdb.com/get_87578_RMI.Plugin.for.Eclipse.v2.0.2.1_crack.html (若鏈接失效,請請自行google文件全名)我們下載適合eclipse3.1.x和3.2.x的2.0.2.1版本,得到net.genady.rmi_2.0.2.1.zip安裝包。        這裏使用的是Eclipse3.4.1版本(還未發現使用有問題)。


二、安裝插件包 
       解壓縮安裝包net.genady.rmi_2.0.2.1.zip,將解壓後得到的features和plugins文件夾拷貝至Eclipse安裝根目錄下,覆蓋原有文件夾(若爲破解版,請按照內置的說明文件進行配置)。

         啓動Eclipse(如果已經啓動,請重新啓動Eclipse),這時在工具欄上會發現多了一個工具圖標,裏面有Registry的管理選項,這個就是RMI Registry的管理器。說明已經安裝成功了。

三、設置開發環境 
       在安裝好插件包後,我們來設置RMI開發環境。        啓動Eclipse,在菜單window->preferences對話框中,選中左邊樹菜單java->rmi,右邊窗口會出現RMI Plugin的默認設置信息。

       最上面的Path to RMI registry設置java的RMI Registry的路徑,如這裏設置的是C:/Program Files/Java/jdk1.5.0_05/bin/rmiregistry.exe,一般不用管它。下面的一個框是RMI的服務端口,默認是 1099,這個類似tomcat的服務端口8080一樣,鏈接的時候需要找到對應的端口才能鏈接上。其實RMI的最低層是socket。

       這裏需要特別指出的是RMI Plugin是個收費的Eclipse插件,有20天的免費試用期。而RMI屬性中最大的窗口就是填使用授權信息的。

       開發環境到這裏也只是基本的設計完成,其他的還要在具體的項目中進行設置,下面我們就開發一個簡單的演示項目。

四、開發演示項目 
       這裏偷一下懶,引用別人的一篇文章的實例,大家可以比照在eclipse中創建該項目;也可以順便了解一下RMI的基本機制,和不用工具的開發方法。

文章地址: http://www.inspiresky.com/bbs/dispbbs.asp?boardID=22&ID=1687&page=1 
       這裏採用第五樓文章中的例子。如果你對RMI沒有什麼太多瞭解請一定先看此文章。              這裏我們一步一步來在eclipse中創建我們的演示項目:          
       1、啓動eclipse,新建項目 
       菜單file->new->projects->java projects,點擊next,projects name 爲RMITest。其他默認,點擊next,點擊finish。OK,新項目建成。

        2、新建服務器包 
       左邊樹中右鍵項目RMITest,new->package,新建包com.inspiresky.rmi.server。

        3、創建遠程對象接口類 
       右鍵點擊剛纔創建的包,new->Interface,新建接口I_Hello。然後編輯我們新建的接口,代碼如下所示:      

         package com.inspiresky.rmi.server;

        import java.rmi.Remote;   
        import java.rmi.RemoteException;

        /* 
      * Junsan        */

        public interface I_Hello extends Remote{                public String SayHello() throws RemoteException;         }

      4、定義一個實現該接口的類 
       右鍵點擊剛纔創建的包,new->class,新建類文件Hello。然後編輯我們新建的接口,代碼如下所示:      

          package com.inspiresky.rmi.server;

        import java.rmi.RemoteException;         import java.rmi.server.UnicastRemoteObject; 
        /* 
      * Junsan 
      */ 
        public class Hello extends UnicastRemoteObject implements I_Hello{        
               private static final long serialVersionUID = -8868676826752697887L; 
               public Hello() throws RemoteException 
            { 
           } 
            public String SayHello()      //這個是實現I_Hello接口的方法 
            { 
                 return "Hello world !!"; 
            } 
        }        
       好了到此,已經完成了主要服務對象的編寫工作。        
        5、生成程序的存根文件 
       右鍵點擊工程名稱RMITest,RMI->Enable Stubs Generations。選中後,在我們工程文件夾RMITest/bin下的相應的包中com/inspiresky/rmi/server下就自動生成了Hello_Stub.class類。 
        6、創建RMI服務器類 
       同4中的過程,新建類RMI_Server,並編輯器代碼爲:       
        package com.inspiresky.rmi.server; 
        import java.rmi.Naming; 
        /* 
       * Junsan 
       */ 
        public class RMI_Server { 
               public RMI_Server() { 
               } 
               public static void main(String[] args) { 
                      try { 
                             Hello hello = new Hello(); 
                             Naming.rebind("RMI_Hello", hello); 
                             System.out.println("=== Hello server Ready === "); 
                      } catch (Exception exception) { 
                             exception.printStackTrace(); 
                      } 
               } 
        } 
        7、新建客戶端包 
       方法同2,包名com.inspiresky.rmi.client。 
        8、創建客戶端 
       在新建的包中同4過程,創建類RMI_Client。並編輯代碼如下:       
       package com.inspiresky.rmi.client; 
        import java.rmi.Naming; 
        import com.inspiresky.rmi.server.I_Hello; 
        /* 
       * Junsan 
       */ 
        public class RMI_Client { 
               public RMI_Client() { 
                      super(); 
               } 
               public static void main(String[] args) { 
                      try { 
                             I_Hello hello = (I_Hello) Naming.lookup("RMI_Hello"); 
                             System.out.println(hello.SayHello()); 
                      } catch (Exception e) { 
                             e.printStackTrace(); 
                      } 
               } 
        } 
        OK,到這裏我們就可以準備調試運行我們的程序了。


五、運行調試項目 
       在運行之前需要進行一下設置,否則,會提示錯誤信息,說找不到stub類。 
        1、啓動RMIRegistry 
        Eclipse菜單window->show view->others,在彈出菜單中選擇RMI Views->RMI Registry Inspector,這是會多出來一個窗口,這裏可以顯示已經註冊的RMI應用。 
       點擊工具條上的RMI Plugin圖標,在菜單中選擇Start Local Registry。 
       注意這個只需要啓動一次,除非你把它關掉。 
        2、配置運行RMI服務 
       右鍵點擊左邊樹中的RMI_Server.java文件,菜單Debug As ->RMI Application。在彈出對話框中找到RMI Properties標籤頁。 
       這時這裏前兩項顯示紅色。 
       選中java.security.police項的value框,點擊選擇按鈕會出現文件選擇對話框,我們這裏設置成C:/Program Files/Java/jre1.5.0_05/lib/security/java.security。就是jre的安全策略配置文件,要選擇成泥當前用的jdk的側略文件。 
       選中第二項java.rmi.server.codebase的value項,這裏選擇編譯後類包所在的文件夾。點擊選擇按鈕->add按鈕->pick from workspace,選擇當前工程RMITest的bin文件夾。這裏是file:/E:/workspace/RMITest/bin/。 
(這裏有點要補充一下,還可以 點擊選擇按鈕->add按鈕->compute from classpath)

       點擊apply按鈕。 
       點擊debug按鈕。 
       這時Eclipse的console窗口中出現 
       === Hello server Ready === 
    表示RMI服務已經運行。    
        3、設置調試信息 
       打開Hello.java文件,在        
        return "Hello world !!";        
       處設置斷點。 
        4、運行客戶端,調試程序 
       工程樹中,右鍵點擊RMI_Client.java文件,Run As -> Java Application。 
       我們點擊後,窗口一閃而過,停止後,會發現光標已經停止在我們設定斷點的地方。這裏程序沒有錯誤,我們按F6鍵繼續,會進入程序下一步的運行文件,調試的時候就是這樣子一步一步調試下去。這裏我們按F8直接運行完代碼,在console窗口中會顯示 
       Hello world !! 
       表示程序已經運行成功。

本文來自CSDN博客:http://blog.csdn.net/mudbird/archive/2009/05/06/4155407.aspx

本人測試可行。

發佈了21 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章