ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Java EE運用ガイド(Java EE 6編)
FUJITSU Software

2.22.6 クラスローダ使用時の注意事項

ここでは、クラスローダを使用する際の注意事項について説明します。

クタを使用する際の注意事項

ネイティブライブラリを使用したコネクタを運用する場合、配備したInterstage Java EE 6 DASサービスまたはIJServerクラスタから参照可能にするために、ネイティブライブラリへのパスを環境変数PATH(Solaris/LinuxではLD_LIBRARY_PATH)に設定します。
詳細は、「4.3.3 環境変数の設定」を参照してください。

Java EEアプリケーションでJNIを使用する場合の注意事項

同じNativeモジュールは、別々のクラスローダでロードすることはできません。JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、同じNativeモジュールを別々のクラスローダでロードするとjava.lang.UnsatisfiedLinkErrorがスローされます。
java.lang.UnsatisfiedLinkErrorがスローされた場合は、JNIを使用するクラス(nativeメソッドを実装しているクラス)をアプリケーションに含めずに、JNIを使用するクラスを共通ディレクトリに保管してください。
また、JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、そのアプリケーションはHotDeployを使用できません。
使用した場合は、java.lang.UnsatisfiedLinkErrorがスローされ、HotDeployに失敗する可能性があります。java.lang.UnsatisfiedLinkErrorがスローされ、HotDeployに失敗した場合は、Interstage Java EE 6 DASサービスまたはIJServerクラスタを再起動してください。
JNIを使用するアプリケーションでHotDeployを使用する場合は、JNIを使用するクラスを共通ディレクトリに設定してください。なお、JNIを使用するクラスを入れ替える場合は、Interstage Java EE 6 DASサービスまたはIJServerクラスタを再起動してください。

WEB-INF/lib配下に保管したJARファイル内のリソースへアクセスする場合の注意事項

WEB-INF/lib配下に保管したJARファイル内のリソースにWebクラスローダのgetResoruce/getResourceAsStreamを呼び出してアクセスした場合、初回アクセス時にJARファイルがInterstage Java EE 6 DASサービスまたはIJServerクラスタの管理するディレクトリに展開されます。そのため、JARファイル内に多くのリソースが存在すると、初回アクセス時の性能が劣化する場合があります。
本問題は該当するJARファイルをWEB-INF/lib以外に保管し、Interstage Java EE 6で使用するクラスに設定することで回避可能です。
設定方法は「2.22.4 Interstage Java EE 6で使用するクラスの設定について」を参照してください。