RMI部署詳細過程for jdk6.0

 

開發環境:MyEclipse8.5

服務器ip爲192.168.1.100

客戶端ip爲192.168.1.101

服務器初始目錄結構: 

src/com/syslink

                      |  server

                             |-------TaskInfo.java        (接口)  

                             |-------TaskDispatcher.java        (接口)  

                             |-------TaskInfoImpl.java          (實現TaskInfo接口) 

                             |-------TaskDispatcherImpl.java       (實現TaskDispatcher接口)

                             |-------Server.java           (啓動RMI服務器)

bin/com/syslink

                      |  server

                             |-------TaskInfo.class     

                             |-------TaskDispatcher.class      

                             |-------TaskInfoImpl.class   

                             |-------TaskDispatcherImpl.class       

                             |-------Server.class 

 

客戶端初始目錄結構:

src/com/syslink

                      |  server

                            |-------TaskInfo.java        (接口,同服務器下的接口文件) 

                            |-------TaskDispatcher.java        (接口,同服務器下的接口文件) 

                      | client 

                             |-------Client.java      (啓動RMI客戶端)

bin/com/syslink

                      |  server

                             |-------TaskInfo.class     

                             |-------TaskDispatcher.class                 

                      | client 

                             |-------Client.class

              

1:服務器端運行RMIC(我機子上位於C:\Program Files\Java\jdk1.6.0_12\bin)生成stub文件

必須在src目錄下執行以下兩句:

src>RMIC com.syslink.server.TaskInfoImpl           

src>RMIC com.syslink.server.TaskDispatcherImpl

運行完後在

com/syslink/server目錄下將新增兩個文件:TaskInfoImpl_Stub.class 和 TaskDispatcherImpl_Stub.class

(如果在RMIC命令中加-keep參數,還會生成另兩個文件TaskInfoImpl_Stub.java和 TaskDispatcherImpl_Stub.java,最好看一下里面的繼承關係,加深理解)

(如果出現找不到類的情況,請添加classpath參數,如:RMIC -classpath . com.syslink.server.TaskInfoImpl  )


2:將1中生成的兩個*Impl_Stub.class文件拷貝到服務器bin/com/syslink/server和客戶端bin/com/syslink/server目錄下

 

3:分別在服務器和客戶端的bin/com/syslink/server目錄下建一個server.policy文件,內容爲:

grant {  
permission java.security.AllPermission "", "";  
};

(內容可以根據實際情況改,這裏表示允許客戶端做任何事)

 

4:服務器端運行start rmiregistry

 

5:服務器端運行Server

記得在server的啓動代碼里加上System.setProperty ("java.security.policy", EmailSendServer.class.getResource("server.policy").toString ()); 否則將出現“Access Denied。。。”錯誤

 

6:客戶端運行Client

跟運行Server一樣,加上System.setProperty ("java.security.policy", EmailSendClient.class.getResource("server.policy").toString ()); 否則將出現“Access Denied。。。”錯誤

 

7:最後的目錄結構爲:

服務器最終目錄結構: 

src/com/syslink

                      |  server

                             |-------TaskInfo.java        (接口)  

                             |-------TaskDispatcher.java        (接口)  

                             |-------TaskInfoImpl.java          (實現TaskInfo接口) 

                             |-------TaskDispatcherImpl.java       (實現TaskDispatcher接口)

                             |-------Server.java           (啓動RMI服務器)

                             |-------TaskInfoImpl_Stub.class            (刪除也沒關係)

                             |-------TaskDispatcherImpl_Stub.class     (刪除也沒關係)

 

bin/com/syslink

                      |  server

                             |-------TaskInfo.class     

                             |-------TaskDispatcher.class      

                             |-------TaskInfoImpl.class   

                             |-------TaskDispatcherImpl.class       

                             |-------Server.class 

                             |-------TaskInfoImpl_Stub.class   

                             |-------TaskDispatcherImpl_Stub.class     

                             |-------server.policy

 

 

客戶端最終目錄結構:

src/com/syslink

                      |  server

                            |-------TaskInfo.java        (接口,同服務器下的接口文件) 

                            |-------TaskDispatcher.java        (接口,同服務器下的接口文件) 

                      | client 

                             |-------Client.java      (啓動RMI客戶端)

bin/com/syslink

                      |  server

                             |-------TaskInfo.class     

                             |-------TaskDispatcher.class             

                             |-------TaskInfoImpl_Stub.class            

                             |-------TaskDispatcherImpl_Stub.class      

                      | client 

                             |-------Client.class

                             |-------server.policy        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章