ここではIJServerのクラスローダの階層構造について説明します。
IJServerで使用するクラスローダは、親クラスローダおよび子クラスローダからなる階層構造をもっています。このようにクラスローダが階層構造をもつことによりシステムとアプリケーションおよびアプリケーション間の独立性が向上します。
クラスローダの階層はカスタマイズ可能です。カスタマイズ方法については“2.3.2 クラスローダの分離”を参照してください。
各クラスローダは下表の資源をロードします。Interstageのデフォルトの設定では、クラスローダは表の上から順にクラスをロードします。クラスをロードする順序はカスタマイズ可能です。カスタマイズ方法については“2.3.3 クラスローダの検索順番の変更”を参照してください。
クラスローダの分離が“EAR間で分離”の場合
クラスローダ | ロードする資源 | 設定方法 |
---|---|---|
システムクラスローダ | XMLパーサのクラス | ワークユニットのXMLパーサの環境設定 |
Applicationクラスローダ | IJServer内で共通のクラス(classファイル) | アプリケーション固有ライブラリパス |
Connectorが使用するConnector以外のクラス(classファイル) | RARファイル内のマニフェストクラスパス | |
EJBアプリケーションのクラス(classファイル) | ejb-jarファイル | |
EJBアプリケーションが使用するEJBアプリケーション以外のクラス(classファイル) | ejb-jarファイル内のマニフェストクラスパス | |
アプリケーション内で共通に使用するクラス(classファイル) | EARファイル内のShared/classesディレクトリ | |
IJServer内で共通のクラス(Jarファイル) | アプリケーション固有ライブラリパス | |
Connectorのクラス(Jarファイル) | RARファイル | |
Connectorが使用するConnector以外のクラス(Jarファイル) | RARファイル内のマニフェストクラスパス | |
EJBアプリケーションが使用するEJBアプリケーション以外のクラス(Jarファイル) | ejb-jarファイル内のマニフェストクラスパス | |
アプリケーション内で共通に使用するクラス(Jarファイル) | EARファイル内のShared/libディレクトリ | |
Webappクラスローダ | Webアプリケーションのクラス(classファイル) | WARファイル内のWEB-INF/classesディレクトリ |
Webアプリケーションが使用するWebアプリケーション以外のクラス(classファイル) | WARファイル内のマニフェストクラスパス | |
Webアプリケーションのクラス(Jarファイル) | WARファイル内のWEB-INF/libディレクトリ | |
Webアプリケーションが使用するWebアプリケーション以外のクラス(Jarファイル) | WARファイル内のマニフェストクラスパス | |
Interstageクラスローダ | Interstageのクラス | なし(設定できません) |
IJServer内で共通のクラス | ワークユニットのクラスパス | |
IJServerのSharedディレクトリ内に保管 | ||
複数のIJServer間で共通のクラス | J2EEプロパティのクラスパス |
クラスローダの分離が“すべて分離”の場合
クラスローダ | ロードする資源 | 設定方法 |
---|---|---|
システムクラスローダ | XMLパーサのクラス | ワークユニットのXMLパーサの環境設定 |
Applicationクラスローダ | IJServer内で共通のクラス(classファイル) | アプリケーション固有ライブラリパス |
Connectorが使用するConnector以外のクラス(classファイル) | RARファイル内のマニフェストクラスパス | |
EJBアプリケーションのクラス(classファイル) | ejb-jarファイル | |
EJBアプリケーションが使用するEJBアプリケーション以外のクラス(classファイル) | ejb-jarファイル内のマニフェストクラスパス | |
アプリケーション内で共通に使用するクラス(classファイル) | EARファイル内のShared/classesディレクトリ | |
IJServer内で共通のクラス(Jarファイル) | アプリケーション固有ライブラリパス | |
Connectorのクラス(Jarファイル) | RARファイル | |
Connectorが使用するConnector以外のクラス(Jarファイル) | RARファイル内のマニフェストクラスパス | |
EJBアプリケーションが使用するEJBアプリケーション以外のクラス(Jarファイル) | ejb-jarファイル内のマニフェストクラスパス | |
アプリケーション内で共通に使用するクラス(Jarファイル) | EARファイル内のShared/libディレクトリ | |
Webappクラスローダ | IJServer内で共通のクラス(classファイル) | アプリケーション固有ライブラリパス |
Webアプリケーションのクラス(classファイル) | WARファイル内のWEB-INF/classesディレクトリ | |
Webアプリケーションが使用するWebアプリケーション以外のクラス(classファイル) | WARファイル内のマニフェストクラスパス | |
IJServer内で共通のクラス(Jarファイル) | アプリケーション固有ライブラリパス | |
Webアプリケーションのクラス(Jarファイル) | WARファイル内のWEB-INF/libディレクトリ | |
Webアプリケーションが使用するWebアプリケーション以外のクラス(Jarファイル) | WARファイル内のマニフェストクラスパス | |
Interstageクラスローダ | Interstageのクラス | なし(設定できません) |
IJServer内で共通のクラス | ワークユニットのクラスパス | |
IJServerのSharedディレクトリ内に保管 | ||
複数のIJServer間で共通のクラス | J2EEプロパティのクラスパス |
クラスローダの分離が“分離しない”の場合
クラスローダ | ロードする資源 | 設定方法 |
---|---|---|
システムクラスローダ | XMLパーサのクラス | ワークユニットのXMLパーサの環境設定 |
Interstageのクラス | なし(設定できません) | |
IJServer内で共通のクラス | ワークユニットのクラスパス | |
IJServerのSharedディレクトリ内に保管 | ||
複数のIJServer間で共通のクラス | J2EEプロパティのクラスパス | |
IJServer内で共通のクラス | アプリケーション固有ライブラリパス | |
複数のIJServer間で共通のクラス | 環境変数:CLASSPATH | |
Connectorのクラス | RARファイル | |
EJBアプリケーションのクラス | ejb-jarファイル | |
EJBアプリケーションが使用するEJBアプリケーション以外のクラス | ejb-jarファイル内のマニフェストクラスパス | |
アプリケーション内で共通に使用するクラス | EARファイルのSharedディレクトリ内に保管 | |
Webappクラスローダ | Webアプリケーションのクラス(classファイル) | WARファイル内のWEB-INF/classesディレクトリ |
Webアプリケーションが使用するWebアプリケーション以外のクラス(classファイル) | WARファイル内のマニフェストクラスパス | |
Webアプリケーションのクラス(Jarファイル) | WARファイル内のWEB-INF/libディレクトリ | |
Webアプリケーションが使用するWebアプリケーション以外のクラス(Jarファイル) | WARファイル内のマニフェストクラスパス |
注意
IJServerのextディレクトリ内に格納されたクラスはシステムクラスローダに設定され、上記のクラスに優先して使用されます。詳細は、“2.3.4 IJServerで使用するクラスの設定について”を参照してください。
上記のほか、IJServerの動作に必要な資源は自動的にロードされます。