Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第1部 J2EE共通編 | > 第2章 J2EEアプリケーションの設計 | > 2.3 クラスローダ |
ここではIJServerが使用するクラスやアプリケーションが使用するクラスの設定方法について説明します。
“XMLパーサの設定”を参照してください。
複数のIJServer間で共通に使用するクラスは、J2EEプロパティのクラスパスに設定します。
複数のIJServer間で共通のクラスにはJDBCドライバなどユーザがアプリケーションで使用するライブラリを自由に設定することができます。
J2EEプロパティのクラスパスは、Interstage管理コンソールを使用して、以下の方法で設定します。
ディレクトリ名の最後が“.jar”、または“.zip”で終了するディレクトリをクラスパスに指定する場合は、最後にパスセパレータ(Solaris OE/Linuxの場合は"/"、Windowsの場合は"\")を付加してください。
ここでは、IJServer内で共通に使用するクラスの設定方法について説明します。
IJServer内で共通に使用するクラスの設定方法はワークユニットのクラスパスに設定する方法と、IJServerのSharedディレクトリ内に保管する方法があります。
ワークユニットのクラスパスにjarファイルまたはクラスファイルが保管されたディレクトリを絶対パスで指定します。
ワークユニットのクラスパスは、Interstage管理コンソールを使用して、以下のどちらかの方法で設定します。
ディレクトリ名の最後が“.jar”、または“.zip”で終了するディレクトリをクラスパスに指定する場合は、最後にパスセパレータ(Solaris OE/Linuxの場合は"/"、Windowsの場合は"\")を付加してください。
以下のどちらかの方法で設定します。
Shared/libとShared/classes内に同一のパッケージ名、クラス名のクラスが存在した場合は、Shared/classesディレクトリ内のクラスがロードされます。
本ディレクトリ内のクラスまたはjarファイルは再活性およびクラスのオートリロードの対象外のため、置き換えた場合にはIJServerを再起動するまで反映されません。
Sharedディレクトリに資源を保管する際、保管できる権限が一般ユーザに付与されていない場合は、必要に応じて管理者が権限を変更してください。
環境変数:CLASSPATH(自動起動時はシステム環境変数)は、クラスローダの分離に“分離しない”を設定している場合に、“システムクラスローダ”でロードされます。
クラスローダの分離が“EAR間で分離”または“すべて分離”の場合は環境変数:CLASSPATHに設定されているクラスはロードされません。
アプリケーションのクラスは、EARファイル、ejb-jarファイル、WARファイル、RARファイルをInterstage管理コンソールを使用して、以下の方法で配備することで設定します。
EARファイルは以下のようなファイル構成で構築します。
EJBアプリケーションのクラスは、以下のどちらかの方法で設定します。
Webアプリケーションのクラスは、以下のどちらかの方法で設定します。
Connectorのクラスは、以下のいずれかの方法で設定します。
Connectorサービスに配備されたConnectorは配備先をワークユニットのクラスパスに設定する必要があります。
EJBアプリケーション、Webアプリケーションからユーティリティクラスのような共通に使用されるライブラリをIJServerに配備する方法を説明します。
アプリケーション内で共通のクラスを使用する方法として、以下の2つの方法があります。
どちらの方法もユーティリティクラスのように共通に使用されるクラスをejb-jarファイル、WARファイルに含めることなくEJBアプリケーション、Webアプリケーションから使用することができるようになります。
上記の2つの方法では、以下のようにクラスを参照できる範囲が異なります。
方法
クラスが参照可能な範囲
マニフェストクラスパスを設定する方法
マニフェストクラスパスが指定されたEJBアプリケーション(ejb-jar)、Webアプリケーション(WAR)内でのみ参照可能
EARファイル内のSharedディレクトリを使用する方法
アプリケーション内のすべてのクラスから参照可能
以下のようにEARファイル内にアプリケーション内で共通のクラスとマニフェストファイルを保管します。
Manifest-Version: 1.0 |
たとえば、web1.warからutility1.jarとutility2.jarおよび、com.fujitsu.Utility.classを利用する場合は以下のように定義したマニフェストファイルをweb1.warに含めます。
【EARファイルの構成】
- web1.war
- utility1.jar
- util/utility2.jar
- util/com/fujitsu/Utility.class
【WARに含まれるマニフェストファイル】
Manifest-Version: 1.0
Class-Path: utility1.jar util/utility2.jar util
マニフェストファイルを作成する際には下記の点に注意してください。
アプリケーション内で共通のクラスをEARファイル内のSharedディレクトリに保管してEARファイルをIJServerに配備することで設定します。
jarファイルの場合はShared/libディレクトリに、クラスの場合はShared/classesディレクトリに保管します。
EARファイル内のSharedディレクトリはInterstageの独自機能であり、他のアプリケーションサーバでは有効になりません。
また、SharedディレクトリはEARファイルに対してのみ有効であり、ejb-jarファイル、RARファイル、WARファイルに対しては有効になりません。
Shared/libとShared/classes内に同一のパッケージ名、クラス名のクラスが存在した場合は、Shared/classesディレクトリ内のクラスがロードされます。
本ディレクトリ内のクラスまたはjarファイルは再活性およびクラスのオートリロードの対象です。
目次 索引 |