ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

2.22.2 クラスローダの分離

GlassFishのクラスローダは下記表の単位で作成されます。

クラスローダ

作成単位

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モジュールごとに作成されます。

下図は、Jakarta EEアプリケーションを配備した時のクラスローダ構成です。点線で表した配備単位ごとにクラスローダを作成して独立にクラスをロードするため、配備単位ごとに同一名称のファイルやパッケージ名、クラス名の使用が可能です。

注意

  • 異なるコネクタモジュール間は参照できません。例えば、上図のRAR2とRAR3間は相互に参照できません。

  • 異なるライフサイクルモジュール間は参照できません。例えば、上図のLCM1とLCM2間は相互に参照できません。

  • アプリケーションライブラリーでは、以下の参照ができません。

    • 1つの配備単位で複数のアプリケーションライブラリーを指定した場合、そのアプリケーションライブラリー間は参照できません。例えば、上図のapplib1とapplib2間、applib3とapplib4間、applib5とapplib6間は相互に参照できません。

    • アプリケーションライブラリーから、Connectorクラスローダでロードされるリソースは参照できません。例えば、上図のapplib1からRAR2、applib3からRAR3、applib5からRAR2を参照することはできません。