クラスローダの改善
クラスローダの構成
■クラスローダの構成
IJServerで使用するクラスローダは、親クラスローダおよび子クラスローダからなる階層構造をもっています。このようにクラスローダが階層構造をもつことによりシステムとアプリケーションおよびアプリケーション間の独立性が向上します。
また、Interstage Application ServerのV6まではクラスローダはEJBアプリケーションについてはすべてシステムクラスローダでロードされていました。
J2EE環境でのクラスローダについては、ベンダーによって若干動作が異なります。しかし、クラスローダの改善により、クラスローダの階層をカスタマイズすることが可能となり、他社製品で開発されたJ2EEアプリケーションの移植が容易になります。

クラスローダの階層はカスタマイズ可能です。カスタマイズ方法については“クラスローダの分離”を参照してください。
各クラスローダは下表の資源をロードします。Interstageのデフォルトの設定では、クラスローダは表の上から順にクラスをロードします。クラスをロードする順序はカスタマイズ可能です。カスタマイズ方法については“クラスローダの検索順番の変更”を参照してください。
クラスローダの分離が“EAR間で分離”または“すべて分離”の場合
| クラスローダ |
ロードする資源 |
設定方法 |
| システムクラスローダ |
XMLパーサのクラス |
ワークユニットのXMLパーサの環境設定 |
| Applicationクラスローダ |
Connectorのクラス
注)ConnectorをIJServerに配備した場合 |
RARファイル |
| EJBアプリケーションのクラス |
ejb-jarファイル |
| EJBアプリケーションが使用するEJBアプリケーション以外のクラス |
ejb-jarファイル内のマニフェストクラスパス |
| アプリケーション内で共通に使用するクラス |
EARファイルのSharedディレクトリ |
Webappクラスローダ
|
Webアプリケーションのクラス |
WARファイル |
| Webアプリケーションが使用するWebアプリケーション以外のクラス |
WARファイル内のマニフェストクラスパス |
| Interstageクラスローダ |
Interstageのクラス |
なし(設定できません) |
| IJServer内で共通のクラス |
ワークユニットのクラスパス |
| 複数のIJServer共通のクラス |
J2EEプロパティのクラスパス |
クラスローダの分離が“分離しない”の場合
| クラスローダ |
ロードする資源 |
設定方法 |
| システムクラスローダ |
XMLパーサのクラス |
ワークユニットのXMLパーサの環境設定 |
| Interstageのクラス |
なし(設定できません) |
| IJServer内で共通のクラス |
ワークユニットのクラスパス |
| IJServerのSharedディレクトリ内に保管 |
| 複数のIJServer間で共通のクラス |
J2EEプロパティのクラスパス |
| 環境変数:CLASSPATH |
| Connectorのクラス |
RARファイル |
| EJBアプリケーションのクラス |
ejb-jarファイル |
| EJBアプリケーションが使用するEJBアプリケーション以外のクラス |
ejb-jarファイル内のマニフェストクラスパス |
| アプリケーション内で共通に使用するクラス |
EARファイルのSharedディレクトリ内に保管 |
| Webappクラスローダ |
Webアプリケーションのクラス |
WARファイル |
| Webアプリケーションが使用するWebアプリケーション以外のクラス |
WARファイル内のマニフェストクラスパス |
注)IJServerが自動的にロードする資源の詳細はIJServerで使用するクラスを参照してください。