Module  java.corba
软件包  javax.rmi.CORBA

Class Util



  • public class Util
    extends Object
    提供可由桩和关系使用的实用方法来执行常见操作。
    • 方法详细信息

      • 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 - 领带的目标。
      • getTie

        public static Tie getTie​(Remote target)
        返回给定目标对象的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 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.