Interstage Java EE 7のクラスローダは下記表の単位で作成されます。
クラスローダ | 作成単位 |
---|---|
Extensionクラスローダ | Java VMプロセスで1つ作成されます。 |
Public APIクラスローダ | Java VMプロセスで1つ作成されます。 |
共通クラスローダ | Java VMプロセスで1つ作成されます。 |
Connectorクラスローダ | Java VMプロセスで1つ作成されます。 |
ライフサイクルモジュールクラスローダ | ライフサイクルモジュールが作成されている場合、ライフサイクルモジュールごとに作成されます。 |
Applibクラスローダ | EAR、WAR、EJB-JARファイル配備時にアプリケーションライブラリが指定された場合、配備単位、かつ、アプリケーションライブラリごとに作成されます。 |
Applicationクラスローダ | EARファイルまたはEJB-JARファイルが配備されている場合、配備されているEARファイル/EJB-JARファイルごとに作成されます。 |
Webクラスローダ | WARファイルまたはWebモジュールを含んだEARファイルが配備されている場合、配備されているWARファイル/EARファイル内のWebモジュールごとに作成されます。 |
下図は、Java EEアプリケーションを配備した時のクラスローダ構成です。点線で表した配備単位ごとにクラスローダを作成して独立にクラスをロードするため、配備単位ごとに同一名称のファイルやパッケージ名、クラス名の使用が可能です。
注意
異なるコネクタモジュール間は参照できません。たとえば、上図のRAR2とRAR3間は相互に参照できません。
異なるライフサイクルモジュール間は参照できません。たとえば、上図のLCM1とLCM2間は相互に参照できません。
アプリケーションライブラリでは、以下の参照ができません。
1つの配備単位で複数のアプリケーションライブラリを指定した場合、そのアプリケーションライブラリ間は参照できません。たとえば、上図のapplib1とapplib2間、applib3とapplib4間、applib5とapplib6間は相互に参照できません。
アプリケーションライブラリから、Connectorクラスローダでロードされるリソースは参照できません。たとえば、上図のapplib1からRAR2、applib3からRAR3、applib5からRAR2を参照することはできません。