無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          公告

          與有奉獻(xiàn)精神和分享精神的人做朋友!

          Locations of visitors to this page
          Subscribe by Anothr

          搜索

          •  

          積分與排名

          • 積分 - 583128
          • 排名 - 83

          最新評(píng)論

          閱讀排行榜

          客戶機(jī)接口  
          程序員在編寫使用遠(yuǎn)程對(duì)象的 applet 或應(yīng)用程序時(shí),需要注意 java.rmi 包 
          中可用的 RMI 系統(tǒng)客戶機(jī)可視接口。 

          4.1 遠(yuǎn)程接口 

          package java.rmi; 
          public interface Remote {} 

          java.rmi.Remote 接口用來識(shí)別所有遠(yuǎn)程接口;所有遠(yuǎn)程對(duì)象必須直接或間接 
          實(shí)現(xiàn)此接口。 

          實(shí)現(xiàn)類可以實(shí)現(xiàn)任意數(shù)目的遠(yuǎn)程接口,并可擴(kuò)展其它遠(yuǎn)程實(shí)現(xiàn)類。RMI 提供一些 
          遠(yuǎn)程對(duì)象實(shí)現(xiàn)可以擴(kuò)展的類,有助于遠(yuǎn)程對(duì)象的創(chuàng)建。這些類是 
          java.rmi.server.UnicastRemoteObject

          java.rmi.activation.Activatable。 

          有關(guān)如何定義遠(yuǎn)程接口的詳細(xì)信息,參見“java.rmi.Remote 接口”(2.4.1)一 
          節(jié)。 

          4.2 RemoteException 類 
          類 java.rmi.RemoteException 是許多在執(zhí)行遠(yuǎn)程方法調(diào)用時(shí)可能發(fā)生的、與 
          通信有關(guān)的異常的通用超類。遠(yuǎn)程接口中的每種方法(也是一個(gè)接口)必須在其 
           throws 子句中列出 RemoteException(或其超類,如  
          java.io.IOException 或 java.lang.Exception)。  

          package java.rmi; 
          public class RemoteException extends java.io.IOException 

              public Throwable detail; 
              public RemoteException(); 
              public RemoteException(String s); 
              public RemoteException(String s, Throwable ex); 
              public String getMessage(); 
              public void printStackTrace(); 
              public void printStackTrace(java.io.PrintStream ps); 
              public void printStackTrace(java.io.PrintWriter pw); 



          RemoteException 可用詳細(xì)消息(即 s)和一個(gè)嵌套異常(即 ex,Throwable) 
          進(jìn)行構(gòu)造。嵌套異常 ex 在構(gòu)造函數(shù)的第三種形式中被指定為參數(shù),通常是 RMI 
          調(diào)用過程中發(fā)生的基本 I/O 異常。 

          getMessage 方法返回異常的詳細(xì)消息,包括嵌套異常(如果有)中的消息。 
          printStackTrace 方法在類 java.lang.Throwable 中將被覆蓋掉,以打印嵌套異 
          常的堆棧跟蹤。 

          4.3 Naming 類 
          java.rmi.Naming 類提供存儲(chǔ)和獲得對(duì)遠(yuǎn)程對(duì)象注冊服務(wù)程序中遠(yuǎn)程對(duì)象進(jìn)行 
          引用的方法。Naming 類中的方法以如下形式的,URL 格式的 java.lang.String 
            
          作為其中的一個(gè)參數(shù): 

             //host:port/name 
          其中 host 是注冊服務(wù)程序所在的主機(jī)(遠(yuǎn)程或本地),port 是注冊服務(wù)程序 
          接收調(diào)用的端口號(hào),name 是注 冊表未作出解釋的簡單字符串。host 和 port 
           是可選的。如果省略了 host,則主機(jī)缺省值為本地 主機(jī)。如果省略了 port, 

          則端口缺省值為 1099,即 RMI 系統(tǒng)注冊服務(wù)程序 rmiregistry 所用的“眾所 
          周知”的端口。  
          為遠(yuǎn)程對(duì)象綁定名稱即為稍后使用的遠(yuǎn)程對(duì)象關(guān)聯(lián)或注冊名稱,可用于查詢該遠(yuǎn) 
          程對(duì)象。可以使用 Naming 類的 bind 或 rebind 方法將遠(yuǎn)程對(duì)象與名稱相關(guān)聯(lián) 
          。  

          當(dāng)遠(yuǎn)程對(duì)象已用 RMI 注冊服務(wù)程序在本地主機(jī)上進(jìn)行過注冊(綁定)后,遠(yuǎn)程 
          (或本地)主機(jī)上的調(diào)用程序就可以按名稱查詢遠(yuǎn)程對(duì)象、獲得其引用,然后在 
          對(duì)象上調(diào)用遠(yuǎn)程方法。必要時(shí),某一主機(jī)上運(yùn)行的服務(wù)器可以共享一個(gè)注冊服務(wù) 
          程序。 
          服務(wù)器的各個(gè)進(jìn)程也可創(chuàng)建和使用自己的注冊服務(wù)程序 
          (詳細(xì)信息,參見 java.rmi.registry.LocateRegistry.createRegistry 方法) 
          。 

          package java.rmi; 
          public final class Naming

              public static Remote lookup(String url) 
                  throws NotBoundException, java.net.MalformedURLException, RemoteException; 
              public static void bind(String url, Remote obj) 
                  throws AlreadyBoundException, java.net.MalformedURLException, RemoteException; 
              public static void rebind(String url, Remote obj)
                  throws RemoteException, java.net.MalformedURLException; 
              public static void unbind(String url) 
                  throws RemoteException, NotBoundException, java.net.MalformedURLException; 
              public static String[] list(String url) 
                  throws RemoteException, java.net.MalformedURLException; 

          lookup 方法返回與名稱的文件部分相關(guān)聯(lián)的遠(yuǎn)程對(duì)象。如果名稱未綁定到對(duì)象上 
          ,則拋出 NotBoundException。  
          bind 方法將把指定名稱綁定到遠(yuǎn)程對(duì)象上。如果該名稱已綁定到某一對(duì)象上, 

          則拋出 AlreadyBoundException。  

          rebind 方法總將名稱綁定到對(duì)象上,無論該名稱是否已綁定。原有綁定將丟失。 

          unbind 方法將取消名稱和遠(yuǎn)程對(duì)象間的綁定。如果沒有綁定,則拋出 NotBound 
          Exception。  

          list 方法返回一個(gè) String 對(duì)象的數(shù)組,該對(duì)象包含注冊服務(wù)程序中綁定 URL  
          的快照。 
          為了向注冊服務(wù)程序查詢其內(nèi)容列表,只需要 URL 上的主機(jī)名和端口信息;因此 
          ,URL 的“file”部分將被忽略。 


          ---------------------------------------------------------------------- 
          ---------- 

          注意 - 這些方法也可能拋出 java.rmi.AccessException。AccessException 表 
          示調(diào)用程序無執(zhí) 
          行特定操作的權(quán)限。例如,只有運(yùn)行注冊服務(wù)程序的主機(jī)上的本地客戶機(jī)才允許 
          執(zhí)行 bind、rebind  
          和 unbind 操作。但任何非本地客戶機(jī)都可調(diào)用 lookup 操作。  

          凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉(zhuǎn)載請注明來處和原文作者。非常感謝。

          posted on 2005-12-14 13:12 草兒 閱讀(108) 評(píng)論(0)  編輯  收藏 所屬分類: Java編程經(jīng)驗(yàn)談
          主站蜘蛛池模板: 泗洪县| 商洛市| 莫力| 交口县| 太和县| 晋宁县| 阿鲁科尔沁旗| 武川县| 涟源市| 汉源县| 江阴市| 田阳县| 顺平县| 涟水县| 淮南市| 泰顺县| 泗洪县| 邯郸市| 民勤县| 雅安市| 江西省| 行唐县| 易门县| 齐河县| 五华县| 临城县| 湛江市| 玉屏| 平原县| 拜城县| 穆棱市| 井研县| 武川县| 广丰县| 万源市| 攀枝花市| 长岛县| 焦作市| 婺源县| 金溪县| 清流县|