| Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド | 
| 目次
			索引    | 
| 第1部 J2EE共通編 | > 第2章 J2EEアプリケーションの設計 | 
 Javaのクラスローダはクラスファイルを検索し、クラスをメモリにロードする機能を提供します。
 J2EEアプリケーションを作成する際は、クラスがどのクラスローダでロードされるかを理解してJ2EEアプリケーションを構築してください。
 Javaのクラスローダは親クラスローダと子クラスローダからなる階層構造をもっています。親クラスローダと子クラスローダの関係はオブジェクトのスーパークラスとサブクラスの関係に似ています。
 子クラスローダでロードされたクラスから親クラスローダでロードされたクラスを参照することはできますが、親クラスローダでロードされたクラスから子クラスローダでロードされたクラスを参照することはできません。
JNI(Java Native Interface)を利用している場合はさらに注意が必要です。JNIを利用する場合はNativeモジュールをクラスローダがロードしますが、Javaのクラスローダでは同じNativeモジュールは同じクラスローダ上からのみ利用可能となります。
 (1)と(2)で同じNativeモジュールを使用していますが、先にNativeモジュールを読み込んだ側からのみ利用可能となります。
 クラスBが先に動作した場合はクラスAには“java.lang.UnsatisfiedLinkError”がスローされます。
 上記は、Interstageの場合にも当てはまります。
 一般的には、クラスローダは委譲モデルを使ってクラスをロードします。クラスローダは関連する親クラスローダを持ち、クラスをロードするために呼び出されると、クラスローダはそれ自体でクラスのロードを試みる前に、該当クラスのロードを親クラスローダに委譲します。
 Interstageが利用するクラスとアプリケーションが利用するクラスの独立性を高めるために、Interstageのクラスローダはこの委譲モデルとは少し違う動作をします。Interstageのクラスローダの検索順番については以降で説明します。
 2.3.1 クラスローダの構成
2.3.1 クラスローダの構成 2.3.2 クラスローダの分離
2.3.2 クラスローダの分離 2.3.3 クラスローダの検索順番の変更
2.3.3 クラスローダの検索順番の変更 2.3.4 IJServerで使用するクラスの設定について
2.3.4 IJServerで使用するクラスの設定について 2.3.5 XMLパーサの設定
2.3.5 XMLパーサの設定 2.3.6 トレース機能によるトラブル調査
2.3.6 トレース機能によるトラブル調査 2.3.7 クラスローダ使用時の注意事項
2.3.7 クラスローダ使用時の注意事項| 目次
			索引    |