Feng.Li's Java See

          抓緊時間,大步向前。
          隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
          數據加載中……

          RMI的小例子,不理解的來這看看吧,也歡迎大家拍我。

          ??????? 眾所周之的EJB機制是建立在Java的RMI的基礎之上的,要想對EJB有深入的了解,必須掌握RMI的運行機制,在此,我說說我對RMI的一些理解,希望大家同意的和不同意的都站出來講幾句。

          ?????? Rmi是Java平臺上的RPC,但是由于其只支持Java,所以也就免去了程序員編寫IDL(接口定義語言)之苦。對于Java與非Java程序之間的通信,可以使用RMI-IIOP.
          ??????? 創建RMI遠程對象后,程序員就可以象調用本地對象那樣去調用遠程對象,其底層通信機制則完全由RMI實現,無須我們操心了。
          ??????? 通常,實現一個RMI系統有4個步驟:
          1:定義一個remote interface.
          2:?? 定義一個remote object implementation.
          3:? ?定義客戶端程序。
          4:編譯執行遠程對象和客戶端。

          以下為代碼示例
          1:Remote接口? (注意:必須extends Remote,方法必須throws RemoteException)
          public?interface?RMI_Add?extends?java.rmi.Remote?{
          public?long?add(long?a,?long?b,long?c)
          throws?java.rmi.RemoteException;
          }

          2:?? remote object implementation.(注意:1:extends UnicastRemoteObject 2:構造函數內必須調用UnicastRemoteObject的構造函數,也就是執行super())

          3: 定義遠程實現類,在此我把服務器的綁定一起在此類中實現,也可另外再寫一個類,實現RMI綁定。(注意:一般都用Naming.rebind(),因為rebind()可以覆蓋原有的服務名,省去不必要的麻煩。1099端口為默認,也可以不寫)
          inport java.rmi.Naming;
          public?class?RMI_AddImpl?extends java.rmi.server.UnicastRemoteObject implements?RMI_Add {
          ?public?RMI_AddImpl() throws?java.rmi.RemoteException?{
          super();
          }
          public?long?add(long?a,?long?b,long?c?) throws?java.rmi.RemoteException?{
          return?a?+?b+?c;
          }
          public static void main(String[] args) {
          ? try?{
          RMI_Add?d?=?new?RMI_AddImpl();
          Naming.rebind("rmi://10.7.3.168:1099/RMI_AddService",?d);
          }?catch?(Exception?e)?{?}
          }

          }

          4:編譯以上class文件(Javac)
          5:?? rmic編譯服務器實現類,在此是RMI_AddImpl?。
          6:rmigistry:運行RMI注冊程序.
          7:? 運行客戶端代碼。

          posted on 2006-11-04 02:21 小鋒 閱讀(2129) 評論(0)  編輯  收藏 所屬分類: J2EE

          主站蜘蛛池模板: 抚州市| 镶黄旗| 睢宁县| 临沭县| 保德县| 会东县| 莎车县| 新民市| 克山县| 铁岭市| 平泉县| 新河县| 和平区| 五台县| 昌黎县| 灵台县| 泌阳县| 长汀县| 宁武县| 永昌县| 治县。| 石楼县| 洛扎县| 建湖县| 民乐县| 霍山县| 合阳县| 龙游县| 晴隆县| 阿拉善盟| 泽库县| 平阳县| 固始县| 乌兰县| 杭州市| 玉环县| 松阳县| 东宁县| 汾阳市| 阜新市| 安国市|