ここでは、Interstage Java EE 7のクラスローダの階層構造について説明します。
Interstage Java EE 7で使用するクラスローダは、親クラスローダおよび子クラスローダからなる階層構造を持っています。このようにクラスローダが階層構造を持つことによりシステムとアプリケーションおよびアプリケーション間の独立性が向上します。
各クラスローダは下表のリソースをロードします。本製品のデフォルトの設定では、リソースは表の上から順に検索されます。Webクラスローダの場合、委譲モデルを変更することでリソースの検索順を変更可能です。詳細は「2.22.3 Webクラスローダの委譲モデルの変更」を参照してください。各クラスローダ内でロードされるリソースの検索順番は不定です。
クラスローダ | ロードするリソース | 設定方法 |
---|---|---|
Extensionクラスローダ | システム拡張ディレクトリに配備されたクラス | システム拡張ディレクトリ |
Public APIクラスローダ | アプリケーションサーバのクラス | 設定不可 |
共通クラスローダ | アプリケーションサーバのクラス | 設定不可 |
Interstage Java EE 7で共通に使用するクラス | 共通ディレクトリ | |
Java DBのクラス | 設定不可 | |
定義項目「クラスパスのサフィックス」に設定したクラスパスから検索されるクラス | クラスパスのサフィックス | |
Connectorクラスローダ | コネクタモジュールのクラス | RARファイル |
ライフサイクルモジュールクラスローダ | ライフサイクルモジュール | ライフサイクルモジュール |
Applibクラスローダ | アプリケーションライブラリのクラス(JARファイル) | アプリケーションライブラリ |
Applicationクラスローダ | エンタープライズアプリケーション内で共通に使用するクラス(JARファイル) | application.xmlのlibrary-directoryタグで指定したディレクトリ |
エンタープライズアプリケーション内のコネクタモジュールのクラス | EARファイル内のRARファイル | |
エンタープライズアプリケーション内のEJBアプリケーションのクラスまたはそのEJBアプリケーションが使用するクラス(EJBアプリケーションが単体配備された場合も含む) | EJB-JARファイルまたはEJB-JARファイル内のマニフェストファイルのクラスパス | |
Webクラスローダ | Webアプリケーションが使用するクラス | WARファイル内のマニフェストファイルのクラスパス |
Webアプリケーションのクラス(classファイル) | WARファイル内のWEB-INF/classesディレクトリ | |
Webアプリケーションのクラス(JARファイル) | WARファイル内のWEB-INF/libディレクトリ |