モジュール java.rmi
パッケージ java.rmi

クラスNaming


  • public final class Naming
    extends Object
    Namingクラスは、リモート・オブジェクト・レジストリ内のリモート・オブジェクトへの参照を取得および格納するためのメソッドを提供します。 Namingクラスの各メソッドは、その引数の1つとして、次のようなjava.lang.String型のURL形式(ただしスキーム・コンポーネントは除く)の名前をとります。
        //host:port/name
     

    hostはレジストリのある(リモートまたはローカル)ホスト、portはレジストリが呼出しを受け入れるポート番号、nameはレジストリによって解釈されない単純な文字列です。 hostおよびportの指定はオプションです。 hostを省略すると、デフォルトでローカル・ホストが使われます。 portを省略すると、ポートはデフォルトで1099になります。これは、RMIのレジストリrmiregistryが使うよく知られたポートです。

    リモート・オブジェクトの名前のバインディングとは、あとでこのリモート・オブジェクトを検索して使うことができるように、リモート・オブジェクトに名前を関連付ける、あるいは登録することをいいます。 Namingクラスのbindメソッドまたはrebindメソッドを使って、リモート・オブジェクトを名前と関連付けることができます。

    リモート・オブジェクトがローカル・ホストでRMIレジストリに登録(バインディング)されると、リモート(またはローカル)ホストの呼出し側は名前でリモート・オブジェクトを参照し、その参照を取得し、そのオブジェクトでリモート・メソッドを呼び出すことができます。 レジストリはホストで動作しているすべてのサーバーで共有でき、必要な場合は、個々のサーバー・プロセスが独自のレジストリを作成および使用することもできます。詳細は、java.rmi.registry.LocateRegistry.createRegistryメソッドを参照してください。

    導入されたバージョン:
    1.1
    関連項目:
    Registry, LocateRegistry, LocateRegistry.createRegistry(int)
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      static void bind​(String name, Remote obj)
      指定されたnameをリモート・オブジェクトにバインドします。
      static String[] list​(String name)
      レジストリ内のバインドされている名前の配列を返します。
      static Remote lookup​(String name)
      指定されたnameに関連したリモート・オブジェクトの参照(スタブ)を返します。
      static void rebind​(String name, Remote obj)
      指定された名前を新しいリモート・オブジェクトにバインドし直します。
      static void unbind​(String name)
      リモート・オブジェクトに関連した指定された名前に対するバインディングを破棄します。
    • メソッドの詳細

      • lookup

        public static Remote lookup​(String name)
                             throws NotBoundException,
                                    MalformedURLException,
                                    RemoteException
        指定されたnameに関連したリモート・オブジェクトの参照(スタブ)を返します。
        パラメータ:
        name - URL形式の名前(ただしスキーム・コンポーネントは除く)
        戻り値:
        リモート・オブジェクトの参照
        例外:
        NotBoundException - 名前がバインドされていない場合
        RemoteException - レジストリに接続できない場合
        AccessException - この操作が許可されていない場合
        MalformedURLException - 名前が適切な形式のURLでない場合
        導入されたバージョン:
        1.1
      • bind

        public static void bind​(String name,
                                Remote obj)
                         throws AlreadyBoundException,
                                MalformedURLException,
                                RemoteException
        指定されたnameをリモート・オブジェクトにバインドします。
        パラメータ:
        name - URL形式の名前(ただしスキーム・コンポーネントは除く)
        obj - リモート・オブジェクトの参照(通常はスタブ)
        例外:
        AlreadyBoundException - 名前がすでにバインドされている場合
        MalformedURLException - 名前が適切な形式のURLでない場合
        RemoteException - レジストリに接続できない場合
        AccessException - この操作が許可されていない場合(たとえば、ローカルではないホストから操作している場合)
        導入されたバージョン:
        1.1
      • unbind

        public static void unbind​(String name)
                           throws RemoteException,
                                  NotBoundException,
                                  MalformedURLException
        リモート・オブジェクトに関連した指定された名前に対するバインディングを破棄します。
        パラメータ:
        name - URL形式の名前(ただしスキーム・コンポーネントは除く)
        例外:
        NotBoundException - 名前がバインドされていない場合
        MalformedURLException - 名前が適切な形式のURLでない場合
        RemoteException - レジストリに接続できない場合
        AccessException - この操作が許可されていない場合(たとえば、ローカルではないホストから操作している場合)
        導入されたバージョン:
        1.1
      • rebind

        public static void rebind​(String name,
                                  Remote obj)
                           throws RemoteException,
                                  MalformedURLException
        指定された名前を新しいリモート・オブジェクトにバインドし直します。 名前に対する既存のバインディングは置き換えられます。
        パラメータ:
        name - URL形式の名前(ただしスキーム・コンポーネントは除く)
        obj - 名前に関連付ける新しいリモート・オブジェクト
        例外:
        MalformedURLException - 名前が適切な形式のURLでない場合
        RemoteException - レジストリに接続できない場合
        AccessException - この操作が許可されていない場合(たとえば、ローカルではないホストから操作している場合)
        導入されたバージョン:
        1.1
      • list

        public static String[] list​(String name)
                             throws RemoteException,
                                    MalformedURLException
        レジストリ内のバインドされている名前の配列を返します。 名前は、URL形式(ただしスキーム・コンポーネントは除く)の文字列です。 配列には、呼出しの時点でレジストリに存在する名前のスナップショットを格納します。
        パラメータ:
        name - URL形式のレジストリ名(ただしスキーム・コンポーネントは除く)
        戻り値:
        レジストリ内のバインドされている名前(適切な形式)の配列
        例外:
        MalformedURLException - 名前が適切な形式のURLでない場合
        RemoteException - レジストリに接続できない場合。
        導入されたバージョン:
        1.1