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

クラスRMIClassLoaderSpi

java.lang.Object
java.rmi.server.RMIClassLoaderSpi

public abstract class RMIClassLoaderSpi extends Object
RMIClassLoaderSpiは、RMIClassLoaderのサービス・プロバイダ・インタフェースです。 特に、RMIClassLoaderSpiインスタンスは、RMIClassLoaderの次のstaticメソッドの実装を提供します。 これらのメソッドのいずれかが呼び出されると、このクラスのインスタンス上の対応するメソッドに処理が委譲されます。 各メソッドがプロバイダ・インスタンスに委譲する方法の詳細は、各メソッドのマニュアルを参照してください。 プロバイダ・インスタンスがどのように選択されるのかについては、RMIClassLoaderのマニュアルを参照してください。
導入されたバージョン:
1.4
関連項目:
RMIClassLoader
  • コンストラクタの詳細

    • RMIClassLoaderSpi

      public RMIClassLoaderSpi()
      サブクラスが呼び出すためのコンストラクタ。
  • メソッドの詳細

    • loadClass

      public abstract Class<?> loadClass(String codebase, String name, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException
      RMIClassLoader.loadClass(URL,String)RMIClassLoader.loadClass(String,String)、およびRMIClassLoader.loadClass(String,String,ClassLoader)の実装を提供します。 指定されたコード・ベースURLパスからクラスをロードします。指定されたローダーを使用することもできます。 通常、プロバイダ実装は、指定されたdefaultLoaderを使用して指定されたクラスの解決を試みたあとで、コード・ベースURLパスからのクラスの解決を試みます。

      このメソッドの実装は、指定された名前のクラスを返すか、例外をスローします。

      パラメータ:
      codebase - クラスのロード元のURLのリスト(区切り文字はスペース)、またはnull
      name - ロード対象クラスの名前
      defaultLoader - 状況に応じて使用する追加クラス・ローダー、またはnull
      戻り値:
      ロードされたクラスを表すClassオブジェクト
      例外:
      MalformedURLException - codebasenull以外でかつ無効なURLを含んでいる場合、またはcodebasenullでかつクラスのロード時に使用されたプロバイダ固有URLが無効である場合
      ClassNotFoundException - クラスの定義が指定された場所になかった場合
    • loadProxyClass

      public abstract Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException
      RMIClassLoader.loadProxyClass(String,String[],ClassLoader)の実装を提供します。 指定された名前を持つインタフェース群を実装した動的プロキシ・クラス(Proxyを参照してください)を、指定されたコード・ベースURLパスからロードします。指定されたローダーを使用することもできます。

      このメソッドの実装は、指定されたインタフェースを実装するプロキシ・クラスを返すか、例外をスローする必要があります。

      パラメータ:
      codebase - クラスのロード元のURLのリスト(区切り文字はスペース)、またはnull
      interfaces - プロキシ・クラスが実装するインタフェースの名前
      defaultLoader - 状況に応じて使用する追加クラス・ローダー、またはnull
      戻り値:
      指定されたインタフェースを実装する動的プロキシ・クラス
      例外:
      MalformedURLException - codebasenull以外でかつ無効なURLを含んでいる場合、またはcodebasenullでかつクラスのロード時に使用されたプロバイダ固有URLが無効である場合
      ClassNotFoundException - 指定されたインタフェースの定義のいずれかが指定された場所に見つからない場合、または動的プロキシ・クラスの作成に失敗した場合(Proxy.getProxyClass(ClassLoader,Class[])が、指定されたインタフェース・リストに対してIllegalArgumentExceptionをスローしたときなど)
    • getClassLoader

      public abstract ClassLoader getClassLoader(String codebase) throws MalformedURLException
      RMIClassLoader.getClassLoader(String)の実装を提供します。 指定されたコード・ベースURLパスからクラスをロードするクラス・ローダーを返します。

      セキュリティ・マネージャが存在する場合は、RuntimePermission("getClassLoader")アクセス権を使用してcheckPermissionメソッドが呼び出され、この結果SecurityExceptionになることがあります。 このメソッドの実装は、呼出し側コンテキストがコード・ベースURLパス内のすべてのURLに対するアクセス権を持っているかどうかについて、セキュリティ・チェックを行うこともあります。

      パラメータ:
      codebase - 返されるクラス・ローダーがロードするクラスが格納されているURLのリスト(区切り文字はスペース)、またはnull
      戻り値:
      指定されたコード・ベースURLパスからクラスをロードするクラス・ローダー
      例外:
      MalformedURLException - codebasenull以外でかつ無効なURLを含んでいる場合、またはcodebasenullでかつクラス・ローダーの識別に使用されたプロバイダ固有URLが無効である場合
      SecurityException - セキュリティ・マネージャが存在するときに、そのcheckPermissionメソッドが失敗した場合。または、呼出し側がコード・ベースURLパス内のすべてのURLに接続するアクセス権を持っていない場合
    • getClassAnnotation

      public abstract String getClassAnnotation(Class<?> cl)
      RMIClassLoader.getClassAnnotation(Class)の実装を提供します。 クラス定義の位置を示す注釈文字列を返します。RMIはこれを使用して、指定されたクラスのオブジェクトの整列化を行う際に、クラス記述子に注釈を加えます。
      パラメータ:
      cl - 注釈を取得する対象のクラス
      戻り値:
      整列化時に指定されたクラスに注釈を加えるために使用される文字列、またはnull
      例外:
      NullPointerException - clnullである場合