asklxf

          A java developer's notebook.

          常用鏈接

          統計

          積分與排名

          最新評論

          RMI調用模版

          1. 定義遠程接口 

          // 遠程接口繼承自Remote

          // 遠程方法的傳入參數和返回值必須是自然類型(intfloatboolean等)

          // 或者實現了SerializableRemote接口的對象。

          public interface Time extends java.rmi.Remote {

              // 遠程方法必須拋出RemoteException

              public String getTime() throws RemoteException;

          }

           

          2. 定義實現類 

          // 注意:實現類繼承自UnicastRemoteObject和自定義的遠程接口Time

          public class TimeImpl extends java.rmi.server.UnicastRemoteObject implements Time {

              // 注意:由于RemoteObject構造函數要拋出RemoteException

              // 因此務必定義構造函數并拋出RemoteException

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

           

              // 這里是遠程方法:

              public String getTime() throws RemoteException {

                  return "12:04:27";

              }

           

              // 啟動服務:

              public static void main(String[] args) throws Exception {

                  // 可以手動啟動RMI Registry,也可以在程序中啟動:

                  java.rmi.registry.LocateRegistry.createRegistry(1099);

                  // 綁定名字服務,地址是本地計算機名或本機IP,默認端口是1099

                  java.rmi.Naming.bind("http://localhost:1099/servicename", new TimeImpl());

                  // 如果沒有異常拋出,則綁定成功。

                  // 如果名字已經被綁定,可以用Naming.rebind()替換掉已綁定的服務。

              }

          }

           

          3. 編譯生成樁和框架 

          運行rmic TimeImpl,生成TimeImpl_Skel.classTimeImpl_Stub.class

           

          4. 客戶端

          // 客戶端文件包含客戶端代碼Client.class,遠程接口Time.class

          // rmic生成的支持類TimeImpl_Skel.classTimeImpl_Stub.class

          public static void main(String[] args) throws Exception {

              // 客戶端通過IP引用服務器端的遠程對象,因此可以動態選擇服務器。

              // 如果不指定端口,默認端口號是1099

              Time time = (Time)java.rmi.Naming.lookup("http://localhost:1099/servicename");

              System.out.println(time.getTime());

          }

          posted on 2005-12-02 10:34 Xuefeng's Weblog 閱讀(224) 評論(0)  編輯  收藏 所屬分類: Java Basic


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


          網站導航:
           
          主站蜘蛛池模板: 和硕县| 茂名市| 哈尔滨市| 清镇市| 马山县| 苏尼特右旗| 吴旗县| 循化| 昂仁县| 德钦县| 普宁市| 镇江市| 永善县| 金华市| 怀仁县| 裕民县| 津市市| 克什克腾旗| 土默特右旗| 芷江| 县级市| 称多县| 延寿县| 郯城县| 开封市| 抚顺市| 禄劝| 弥勒县| 河南省| 漳平市| 曲阜市| 三原县| 庆城县| 武山县| 金山区| 东宁县| 榆林市| 吉首市| 高要市| 沽源县| 威海市|