JavaTM 2 Platform
Standard Ed. 6

javax.rmi.CORBA
類別 Util

java.lang.Object
  繼承者 javax.rmi.CORBA.Util

public class Util
extends Object

提供可以由 stub 和 tie 用於執行公共操作的實用方法。


方法摘要
static Object copyObject(Object obj, ORB orb)
          複製或連接一個物件。
static Object[] copyObjects(Object[] obj, ORB orb)
          複製或連接一個物件陣列。
static ValueHandler createValueHandler()
          返回實作 ValueHandler 介面的類別的單一實例。
static String getCodebase(Class clz)
          返回給定類別的程式碼基(如果存在)。
static Tie getTie(Remote target)
          返回給定目標物件的 tie(如果存在)。
static boolean isLocal(Stub stub)
          isLocal 方法與 ObjectImpl._is_local 方法具有相同的語義,否則可能拋出 RemoteException
static Class loadClass(String className, String remoteCodebase, ClassLoader loader)
          為指定的類別返回一個類別實例。
static RemoteException mapSystemException(SystemException ex)
          將 SystemException 映射到 RemoteException。
static Object readAny(InputStream in)
          將 java.lang.Object 作為 CORBA any 讀取。
static void registerTarget(Tie tie, Remote target)
          為 tie 註冊一個目標。
static void unexportObject(Remote target)
          從內部表中移除關聯的 tie,並調用 Tie.deactivate() 以取消啟動該物件。
static RemoteException wrapException(Throwable orig)
          包裹由實作方法拋出的異常。
static void writeAbstractObject(OutputStream out, Object obj)
          將 java.lang.Object 作為一個值或 CORBA Object 寫入。
static void writeAny(OutputStream out, Object obj)
          將 any java.lang.Object 作為 CORBA any 寫入。
static void writeRemoteObject(OutputStream out, Object obj)
          將 java.lang.Object 作為 CORBA Object 寫入。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法詳細資訊

mapSystemException

public static RemoteException mapSystemException(SystemException ex)
將 SystemException 映射到 RemoteException。

參數:
ex - 要映射的 SystemException。
返回:
映射的異常。

writeAny

public static void writeAny(OutputStream out,
                            Object obj)
將 any java.lang.Object 作為 CORBA any 寫入。

參數:
out - 要寫入 any 的串流。
obj - 要寫入為 any 的物件。

readAny

public static Object readAny(InputStream in)
將 java.lang.Object 作為 CORBA any 讀取。

參數:
in - 從中讀取 any 的串流。
返回:
從串流讀取的 Object。

writeRemoteObject

public static void writeRemoteObject(OutputStream out,
                                     Object obj)
將 java.lang.Object 作為 CORBA Object 寫入。如果 obj 是導出的 RMI-IIOP 伺服器物件,則尋找 tie 並傳遞到 obj,然後寫入 out.write_Object(org.omg.CORBA.Object)。如果 obj 是 CORBA Object,則將其寫入到 out.write_Object(org.omg.CORBA.Object)

參數:
out - 要將 Object 寫入的串流。
obj - 要寫入的物件。

writeAbstractObject

public static void writeAbstractObject(OutputStream out,
                                       Object obj)
將 java.lang.Object 作為一個值或 CORBA Object 寫入。如果 obj 是一個值物件或者是一個 stub 物件,則將其寫入到 out.write_abstract_interface(java.lang.Object)。如果 obj 是導出的 RMI-IIOP 伺服器物件,則尋找 tie 並傳遞到 obj,然後寫入到 out.write_abstract_interface(java.lang.Object)

參數:
out - 要寫入 Object 的串流。
obj - 要寫入的物件。

registerTarget

public static void registerTarget(Tie tie,
                                  Remote target)
為 tie 註冊一個目標。將 tie 添加到內部表並對 tie 物件調用 Tie.setTarget(java.rmi.Remote)

參數:
tie - 要註冊的 tie。
target - tie 的目標。

unexportObject

public static void unexportObject(Remote target)
                           throws NoSuchObjectException
從內部表中移除關聯的 tie,並調用 Tie.deactivate() 以取消啟動該物件。

參數:
target - 要撤消導出的物件。
拋出:
NoSuchObjectException

getTie

public static Tie getTie(Remote target)
返回給定目標物件的 tie(如果存在)。

返回:
tie,如果沒有為給定目標註冊 tie,則返回 null。

createValueHandler

public static ValueHandler createValueHandler()
返回實作 ValueHandler 介面的類別的單一實例。

返回:
實作 ValueHandler 介面的類別。

getCodebase

public static String getCodebase(Class clz)
返回給定類別的程式碼基(如果存在)。

參數:
clz - 為其獲取程式碼基的類別。
返回:
URL 的空格分隔的列表,或者為 null。

loadClass

public static Class loadClass(String className,
                              String remoteCodebase,
                              ClassLoader loader)
                       throws ClassNotFoundException
為指定的類別返回一個類別實例。

此方法的規範是“Java 到 IDL 語言的映射關係”ptc/00-01-06。

在 Java SE 平臺上,此方法的工作方式如下:


isLocal

public static boolean isLocal(Stub stub)
                       throws RemoteException
isLocal 方法與 ObjectImpl._is_local 方法具有相同的語義,否則可能拋出 RemoteException。 如果通過本地伺服器實作特定物件,並因此使用本地調用 API,則提供 _is_local() 方法以便能夠確定 stub。

參數:
stub - 要測試的 stub。
返回:
如果具體化物件的伺服器與 stub 位於同一個進程,並且它們共享同一個 ORB 實例,則 _is_local() 方法返回 true。否則,_is_local() 方法返回 false。_is_local() 的預設行為是返回 false。
拋出:
RemoteException - 如果 Java 到 IDL 的規範 沒有指定導致拋出 RemoteException 的條件。

wrapException

public static RemoteException wrapException(Throwable orig)
包裹由實作方法拋出的異常。它返回相應的客戶端異常。

參數:
orig - 要包裹的異常。
返回:
包裹的異常。

copyObjects

public static Object[] copyObjects(Object[] obj,
                                   ORB orb)
                            throws RemoteException
複製或連接一個物件陣列。由本地 stub 使用以複製任意數量的實際參數,根據需要保留共享的交叉參數以支持 RMI 語義。

參數:
obj - 要複製或連接的物件。
orb - 該 ORB。
返回:
複製或連接的物件。
拋出:
RemoteException - 如果不能複製或連接任何物件。

copyObject

public static Object copyObject(Object obj,
                                ORB orb)
                         throws RemoteException
複製或連接一個物件。由本地 stub 使用,以複製實際參數、結果物件或異常。

參數:
obj - 要複製的物件。
orb - 該 ORB。
返回:
複製或連接的物件。
拋出:
RemoteException - 如果不能複製或連接該物件。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only