ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

3.19.3 Webクラスローダの委譲モデルの変更

本製品のデフォルト設定では、Webクラスローダは親のクラスローダにクラスの検索を委譲します。この場合には、EARファイルで配備するとWebモジュール内のクラスは、Applicationクラスローダでロードされます。
また、Webクラスローダが親クラスローダより先にクラスの検索を行うように設定することもできます。

注意

Webクラスローダの委譲モデルを親クラスローダへの委譲を後に設定しても、WARファイルのマニフェストクラスパスに指定したクラスがApplicationクラスローダでロードされます。
WARファイルのマニフェストクラスパスに指定したクラスを、WEB-INF/classesまたはWEB-INF/lib配下に保管してください。

親クラスローダへの委譲を先にする場合

Webクラスローダで検索する前に親クラスローダに委譲します。WebアプリケーションがEJBコンポーネントにアクセスする場合、またはWebアプリケーションがWebサービスクライアントやエンドポイントである場合は、この設定にする必要があります。

親クラスローダへの委譲を後にする場合

親クラスローダで検索する前にWebクラスローダで検索します。Webモジュールが他のモジュールとの連携を行わない場合にだけ設定することをお勧めします。

設定方法

sun-web.xmlのclass-loader要素のdelegate属性で設定します。

設定値

意味

true(デフォルト値)

親クラスローダへの委譲を先に行います。

false

親クラスローダへの委譲を後に行います。

sun-web.xmlの設定方法は、「4.2.3.2 Interstage Web application deployment descriptor (sun-web.xml)」を参照してください。

委譲の例外

Webクラスローダの委譲については、以下の2つの例外があります。

JDKのクラス

JDKのクラスは常に最初にロードされますので、このクラスはユーザが置き換えることはできません。

特定パッケージ名で始まるクラス

以下のパッケージ名で始まるクラスは常に最初に親クラスローダにロードが委譲されます。
親クラスローダに以下のパッケージ名で始まるクラスが存在する場合は、子クラスローダでクラスを置き換えることはできません。

パッケージ名

種類

javax

Java extensions

sun

GFコアアプリケーションサーバクラス

org.xml.sax

SAX 1 & 2

org.w3c.dom

DOM 1 & 2

org.apache.taglibs.standard

taglibs

com.sun.faces

faces

org.apache.commons.logging

commons logging