IJServerクラスタのクラスローダは下記表の単位で作成されます。
クラスローダ | 作成単位 |
---|---|
システムクラスローダ | サーバーインスタンスで1つ作成されます。 |
Shared Chainクラスローダ | サーバーインスタンスで1つ作成されます。 |
共通クラスローダ | サーバーインスタンスで1つ作成されます。 |
Connectorクラスローダ | サーバーインスタンスで1つ作成されます。 |
ライフサイクルモジュールクラスローダ | ライフサイクルモジュールが作成されている場合、ライフサイクルモジュールごとに作成されます。 |
Applibクラスローダ | EARファイル、EJB-JARファイル配備時にアプリケーションライブラリが指定された場合、配備単位、かつ、アプリケーションライブラリごとに作成されます。 |
Applicationクラスローダ | EARファイル、またはEJB-JARファイルが配備されている場合、配備されているEARファイル/EJB-JARファイルごとに作成されます。 |
Webクラスローダ | WARファイル、またはWebモジュールを含んだEARファイルが配備されている場合、配備されているWARファイル/EARファイル内のWebモジュールごとに作成されます。 |
下図は、委譲モデルがデフォルトの場合のクラスローダ構成です。
点線で表した配備単位ごとにクラスローダを作成して独立にクラスをロードするため、配備単位ごとに同一名称のファイルやパッケージ名、クラス名の使用が可能です。
デフォルトの委譲モデルの場合は、EARファイル内のWebモジュールはApplicationクラスローダでロードされます。
そのため、WebモジュールとEJBモジュールの相互参照が可能です。Webクラスローダの委譲モデルについては、「2.23.3 Webクラスローダの委譲モデルの変更」を参照してください。
また、下図のようにWebクラスローダの委譲モデルを変更することでEARファイル配備時でもWebクラスローダでWebモジュールのクラスをロードできます。この設定では、親クラスローダよりも先にWebクラスローダでクラスがロードされます。
Webクラスローダの委譲モデルについては、「2.23.3 Webクラスローダの委譲モデルの変更」を参照してください。
注意
異なるコネクタモジュール間は参照できません。たとえば、上図のRAR2とRAR3間は相互に参照できません。
EARファイル、EJB-JARファイル配備時に指定されたアプリケーションライブラリでは、以下の参照ができません。
1つの配備単位で複数のアプリケーションライブラリを指定した場合、そのアプリケーションライブラリ間は参照できません。たとえば、上図のapplib1とapplib2間、applib5とapplib6間は相互に参照できません。
アプリケーションライブラリから、Connectorクラスローダ、共通クラスローダでロードされる資源は参照できません。たとえば、上図のapplib1からRAR2、applib5からRAR2を参照することはできません。