- java.lang.Object
-
- javax.rmi.CORBA.Util
-
public class Util extends Object
提供可由桩和关系使用的实用方法来执行常见操作。
-
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static ObjectcopyObject(Object obj, ORB orb)复制或连接对象。static Object[]copyObjects(Object[] obj, ORB orb)复制或连接对象数组。static ValueHandlercreateValueHandler()返回实现ValueHandler接口的类的单例实例。static StringgetCodebase(Class clz)返回给定类的代码库(如果有)。static TiegetTie(Remote target)返回给定目标对象的tie(如果有)。static booleanisLocal(Stub stub)该isLocal方法具有相同的语义ObjectImpl._is_local方法,不同之处在于它可以抛出一个RemoteException。static ClassloadClass(String className, String remoteCodebase, ClassLoader loader)返回指定类的类实例。static RemoteExceptionmapSystemException(SystemException ex)将SystemException映射到RemoteException。static ObjectreadAny(InputStream in)将java.lang.Object读取为任何CORBA。static voidregisterTarget(Tie tie, Remote target)注册一个领带的目标。static voidunexportObject(Remote target)从内部表中删除相关联的绑定,并调用Tie.deactivate()以停用该对象。static RemoteExceptionwrapException(Throwable orig)包装一个实现方法抛出的异常。static voidwriteAbstractObject(OutputStream out, Object obj)将java.lang.Object写入值或CORBA对象。static voidwriteAny(OutputStream out, Object obj)将任何java.lang.Object写为任何CORBA。static voidwriteRemoteObject(OutputStream out, Object obj)将java.lang.Object写入CORBA对象。
-
-
-
方法详细信息
-
mapSystemException
public static RemoteException mapSystemException(SystemException ex)
将SystemException映射到RemoteException。- 参数
-
ex- 要映射的SystemException。 - 结果
- 映射的异常。
-
writeAny
public static void writeAny(OutputStream out, Object obj)
将任何java.lang.Object写为任何CORBA。- 参数
-
out- 要写任何的流。 -
obj- 以任何形式写入的对象。
-
readAny
public static Object readAny(InputStream in)
将java.lang.Object读取为任何CORBA。- 参数
-
in- 从中读取任何的流。 - 结果
- 该对象从流中读取。
-
writeRemoteObject
public static void writeRemoteObject(OutputStream out, Object obj)
将java.lang.Object写入CORBA对象。 如果obj是导出的RMI-IIOP服务器对象,则找到并连接到obj,然后写入out.write_Object(org.omg.CORBA.Object)。 如果obj是CORBA对象,则写入out.write_Object(org.omg.CORBA.Object)。- 参数
-
out- 写入对象的流。 -
obj- 要写的对象。
-
writeAbstractObject
public static void writeAbstractObject(OutputStream out, Object obj)
将java.lang.Object写入值或CORBA对象。 如果obj是值对象或存根对象,则写入out.write_abstract_interface(java.lang.Object)。 如果obj是导出的RMI-IIOP服务器对象,则找到并连接到obj,然后写入out.write_abstract_interface(java.lang.Object)。- 参数
-
out- 写入对象的流。 -
obj- 要写的对象。
-
registerTarget
public static void registerTarget(Tie tie, Remote target)
注册一个领带的目标。 将领带添加到内部表格,并在绑带对象上调用Tie.setTarget(java.rmi.Remote)。- 参数
-
tie- 领带登记。 -
target- 领带的目标。
-
unexportObject
public static void unexportObject(Remote target) throws NoSuchObjectException
从内部表中删除相关联的绑定,并调用Tie.deactivate()以停用该对象。- 参数
-
target- 对象为target。 - 异常
-
NoSuchObjectException
-
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 to IDL语言映射”,ptc / 00-01-06。
在Java SE平台中,此方法的工作原理如下:
- 在调用堆栈上找到第一个非空的
ClassLoader,并尝试使用此ClassLoader加载该类。 - 如果第一步失败,如果
remoteCodebase为非空,而useCodebaseOnly为false,则拨打java.rmi.server.RMIClassLoader.loadClass(remoteCodebase, className)。 - 如果
remoteCodebase为null或者是useCodebaseOnly为true,则调用java.rmi.server.RMIClassLoader.loadClass(className)。 - 如果一个类没有通过步骤1,2或3成功加载,并且
loader是非空的,则调用loader.loadClass(className)。 - 如果一个类被第1,2,3或4步成功加载,则返回加载的类,否则抛出
ClassNotFoundException。
- 参数
-
className- 类的名称。 -
remoteCodebase- 可以找到类的空格分隔的URL列表。 可能为null。 -
loader- 一个ClassLoader,如果所有其他方法都失败,可以用于加载类。 - 结果
-
表示加载类的
Class对象。 - 异常
-
ClassNotFoundException- 如果类无法加载。
- 在调用堆栈上找到第一个非空的
-
isLocal
public static boolean isLocal(Stub stub) throws RemoteException
该isLocal方法具有相同的语义ObjectImpl._is_local方法,不同之处在于它可以抛出一个RemoteException。 提供_is_local()方法,使得存根可以确定特定对象是否由本地服务器实现,因此可以使用本地调用API。- 参数
-
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
复制或连接对象数组。 由本地存根复制任意数量的实际参数,根据需要保留参数共享以支持RMI语义。- 参数
-
obj- 要复制或连接的对象。 -
orb- ORB。 - 结果
- 复制或连接的对象。
- 异常
-
RemoteException- 如果任何对象无法复制或连接。
-
copyObject
public static Object copyObject(Object obj, ORB orb) throws RemoteException
复制或连接对象。 由本地存根复制实际参数,结果对象或异常。- 参数
-
obj- 要复制的对象。 -
orb- ORB。 - 结果
- 复制或连接对象。
- 异常
-
RemoteException- if the object could not be copied or connected.
-
-