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 閱讀(223) 評論(0)  編輯  收藏 所屬分類: Java Basic


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


          網站導航:
           
          主站蜘蛛池模板: 老河口市| 靖州| 德格县| 呼图壁县| 柯坪县| 沅陵县| 武宁县| 资溪县| 龙川县| 长宁区| SHOW| 屯昌县| 湖州市| 拉萨市| 儋州市| 凤庆县| 凤城市| 南宁市| 临夏县| 浦东新区| 清水县| 馆陶县| 南平市| 永城市| 洪江市| 渑池县| 柳州市| 牡丹江市| 松滋市| 靖西县| 江北区| 淮滨县| 池州市| 北宁市| 西安市| 宁阳县| 遵义市| 兴化市| 凤冈县| 宁陕县| 仙桃市|