- java.lang.Object
-
- javax.rmi.CORBA.Util
-
public class Util extends Object
提供可由桩和关系使用的实用方法来执行常见操作。
-
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 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。static void
registerTarget(Tie tie, Remote target)
注册一个领带的目标。static void
unexportObject(Remote target)
从内部表中删除相关联的绑定,并调用Tie.deactivate()
以停用该对象。static RemoteException
wrapException(Throwable orig)
包装一个实现方法抛出的异常。static void
writeAbstractObject(OutputStream out, Object obj)
将java.lang.Object写入值或CORBA对象。static void
writeAny(OutputStream out, Object obj)
将任何java.lang.Object写为任何CORBA。static void
writeRemoteObject(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.
-
-