JavaTM Platform
Standard Ed. 6

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()
           
 
メソッドの概要
abstract  String getClassAnnotation(Class<?> cl)
          RMIClassLoader.getClassAnnotation(Class) の実装を提供します。
abstract  ClassLoader getClassLoader(String codebase)
          RMIClassLoader.getClassLoader(String) の実装を提供します。
abstract  Class<?> loadClass(String codebase, String name, ClassLoader defaultLoader)
          RMIClassLoader.loadClass(URL,String)RMIClassLoader.loadClass(String,String)、および RMIClassLoader.loadClass(String,String,ClassLoader) の実装を提供します。
abstract  Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
          RMIClassLoader.loadProxyClass(String,String[],ClassLoader) の実装を提供します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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 の場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。