モジュール java.corba
パッケージ javax.rmi.CORBA

クラスUtil


  • public class Util
    extends Object
    共通の操作を実行するためにスタブおよびTieが使用できるユーティリティ・メソッドを提供します。
    • メソッドの詳細

      • mapSystemException

        public static RemoteException mapSystemException​(SystemException ex)
        SystemExceptionをRemoteExceptionへマップします。
        パラメータ:
        ex - マップするSystemException。
        戻り値:
        マップされた例外。
      • writeAny

        public static void writeAny​(OutputStream out,
                                    Object obj)
        java.lang.ObjectをCORBAのAny型として書き込みます。
        パラメータ:
        out - Any型を書き込むストリーム。
        obj - Any型として書き込むオブジェクト。
      • readAny

        public static Object readAny​(InputStream in)
        java.lang.ObjectをCORBAのAny型として読み込みます。
        パラメータ:
        in - Any型の読込み元ストリーム。
        戻り値:
        ストリームから読み込まれたオブジェクト。
      • 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 - オブジェクトを書き込むストリーム。
        obj - 書き込むオブジェクト。
      • writeAbstractObject

        public static void writeAbstractObject​(OutputStream out,
                                               Object obj)
        java.lang.Objectを値またはCORBA Objectとして書き込みます。 objが値オブジェクトまたはスタブ・オブジェクトの場合は、out.write_abstract_interface(java.lang.Object)に書き込まれます。 objがエクスポートされたRMI-IIOPサーバー・オブジェクトである場合、Tieが検索されてobjに結び付けられ、続いてout.write_abstract_interface(java.lang.Object)に書き込まれます。
        パラメータ:
        out - オブジェクトを書き込むストリーム。
        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、または指定されたターゲットに登録されている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 language mapping」(ptc/00-01-06)に規定されています。

        Java SEプラットフォームでは、このメソッドは次のように動作します。

        • 呼出しスタックで、最初のnull以外のClassLoaderを検出し、このClassLoaderを使用してクラスのロードを試行する。
        • 最初のステップが失敗した場合、およびremoteCodebaseがnull以外でuseCodebaseOnlyがfalseの場合、java.rmi.server.RMIClassLoader.loadClass(remoteCodebase, className)を呼び出す。
        • remoteCodebaseがnullまたはuseCodebaseOnlyがtrueの場合、java.rmi.server.RMIClassLoader.loadClass(className)を呼び出す。
        • クラスがステップ1、2、または3によって正常にロードされず、loaderがnull以外の場合、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メソッドがRemoteExceptionをスローできることを除き、ObjectImpl._is_localと同じセマンティックスを持ちます。 スタブが、特定のオブジェクトがローカル・サーバントによって実装され、したがって、ローカル呼び出しAPIが使用できるかどうかを判定できるように_is_local()が提供されます。
        パラメータ:
        stub - テストするスタブ。
        戻り値:
        オブジェクトを生成するサーバントがスタブと同じプロセスに置かれ、両方が同じORBインスタンスを共有する場合、_is_local()メソッドはtrueを返す。 そうでない場合、_is_local()メソッドはfalseを返す。 _is_local()のデフォルトの動作はfalseを返す。
        例外:
        RemoteException - Java to 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 - オブジェクトをコピーまたは接続できない場合。