Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第1部 J2EE共通編> 第2章 J2EEアプリケーションの設計> 2.3 クラスローダ

2.3.4 IJServerで使用するクラスの設定について

 ここではIJServerが使用するクラスやアプリケーションが使用するクラスの設定方法について説明します。
 設定したクラスの参照順については、“クラスローダの構成”および“クラスローダの検索順番の変更”を参照してください。
 また、設定したクラスのHotDeploy機能、およびクラスのオートリロード機能での扱いについては、それぞれ“J2EE のHotDeploy機能”、“クラスのオートリロード機能”を参照してください

■XMLパーサ

 “XMLパーサの設定”を参照してください。

■複数のIJServer間で共通のクラス

 複数のIJServer間で共通に使用するクラスは、J2EEプロパティのクラスパスに設定します。
 複数のIJServer間で共通のクラスにはJDBCドライバなどユーザがアプリケーションで使用するライブラリを自由に設定することができます。

 J2EEプロパティのクラスパスは、Interstage管理コンソールを使用して、以下の方法で設定します。

 また、isj2eeadminコマンドで設定することも可能です。詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

■IJServer内で共通のクラス

 ここでは、IJServer内で共通に使用するクラスの設定方法について説明します。
 IJServer内で共通に使用するクラスの設定方法はワークユニットのクラスパスに設定する方法、IJServerのSharedディレクトリに設定する方法、アプリケーション固有ライブラリパスに設定する方法、IJServerのextディレクトリに設定する方法があります。

◆ワークユニットのクラスパスに設定する方法

 ワークユニットのクラスパスに、jarファイルまたはクラスファイルが保管されたディレクトリを絶対パスで指定します。
 ワークユニットのクラスパスは、Interstage管理コンソールを使用して、以下のどちらかの方法で設定します。

 また、isj2eeadminコマンドで設定することも可能です。詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

◆IJServerディレクトリ配下のSharedディレクトリに設定する方法

 以下のどちらかの方法で設定します。

 Shared/libとShared/classes内に同一のパッケージ名、クラス名のクラスが存在した場合は、Shared/classesディレクトリ内のクラスがロードされます。


 Sharedディレクトリに資源を保管する際、保管できる権限が一般ユーザに付与されていない場合は、必要に応じて管理者が権限を変更してください。

◆アプリケーション固有ライブラリパスに設定する方法

 ワークユニットのアプリケーション固有ライブラリパスに、jarファイルまたはアプリケーション固有ライブラリのクラスファイルが保管されたディレクトリを絶対パスで指定します。
 ワークユニットのアプリケーション固有ライブラリパスは、Interstage管理コンソールを使用して、以下のどちらかの方法で設定します。

 また、isj2eeadminコマンドで設定することも可能です。詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

◆IJServerのextディレクトリに設定する方法

 IJServerのextディレクトリにjarファイルを格納することで、コンテナが動作するために必要なクラスパスより優先して使用することが可能です。
 ただし、以下の点に注意してください。

 IJServerの実行に必要なクラスと、アプリケーションの実行に必要なクラスの干渉を避けるためにも、前記の“アプリケーション固有ライブラリパスに設定する方法”または、J2EEアプリケーション内にクラスを含めることを推奨します。後者については“アプリケーションのクラス”を参照してください。

■環境変数:CLASSPATH

 環境変数:CLASSPATH(自動起動時はシステム環境変数)は、クラスローダの分離に“分離しない”を設定している場合に、“システムクラスローダ”でロードされます。
 クラスローダの分離が“EAR間で分離”または“すべて分離”の場合は環境変数:CLASSPATHに設定されているクラスはロードされません。

アプリケーションのクラス

 アプリケーションのクラスは、EARファイル、ejb-jarファイル、WARファイル、RARファイルをInterstage管理コンソールを使用して、以下の方法で配備することで設定します。

◆EARファイルの構成

 EARファイルは以下のようなファイル構成で構築します。

◆EJBアプリケーションのクラス

 EJBアプリケーションのクラスは、以下のどちらかの方法で設定します。

◆Webアプリケーションのクラス

 Webアプリケーションのクラスは、以下のどちらかの方法で設定します。

◆Connectorのクラス

 Connectorのクラスは、以下のいずれかの方法で設定します。

 Connectorサービスに配備されたConnectorは配備先をワークユニットのクラスパスに設定する必要があります。

◆アプリケーション内で共通のクラス

 EJBアプリケーション、Webアプリケーションからユーティリティクラスのような共通に使用されるライブラリをIJServerに配備する方法を説明します。
 アプリケーション内で共通のクラスを使用する方法として、以下の2つの方法があります。

 どちらの方法もユーティリティクラスのように共通に使用されるクラスをejb-jarファイル、WARファイルに含めることなくEJBアプリケーション、Webアプリケーションから使用することができるようになります。
 上記の2つの方法では、以下のようにクラスを参照できる範囲が異なります。

方法

クラスが参照可能な範囲

マニフェストクラスパスを設定する方法

マニフェストクラスパスが指定されたEJBアプリケーション(ejb-jar)、Webアプリケーション(WAR)内でのみ参照可能

EARファイル内のSharedディレクトリを使用する方法

アプリケーション内のすべてのクラスから参照可能

マニフェストクラスパスを設定する方法

 以下のようにEARファイル内にアプリケーション内で共通のクラスとマニフェストファイルを保管します。

  1. ユーティリティクラスをEARファイルのトップまたは、EARファイル内の任意のディレクトリ内に保管する。
  2. ユーティリティクラスを使用するejb-jarファイルまたは、WARファイル内のMETA-INF/MANIFEST.MF内に以下のエントリを記述する。

    Manifest-Version: 1.0
    Class-Path: ユーティリティクラスが含まれるjarファイルまたは、クラスファイルが保管されたディレクトリをEARファイル内の相対パスで指定する。

 たとえば、web1.warからutility1.jarとutility2.jarおよび、com.fujitsu.Utility.classを利用する場合は以下のように定義したマニフェストファイルをweb1.warに含めます。

【EARファイルの構成】
【WARに含まれるマニフェストファイル】

Manifest-Version: 1.0
Class-Path: utility1.jar util/utility2.jar util/



 マニフェストファイルを作成する際には下記の点に注意してください。

EARファイル内のSharedディレクトリを使用する方法

 アプリケーション内で共通のクラスをEARファイル内のSharedディレクトリに保管してEARファイルをIJServerに配備することで設定します。
 jarファイルの場合はShared/libディレクトリに、クラスの場合はShared/classesディレクトリに保管します。
 EARファイル内のSharedディレクトリはInterstageの独自機能であり、他のアプリケーションサーバでは有効になりません。
 また、SharedディレクトリはEARファイルに対してのみ有効であり、ejb-jarファイル、RARファイル、WARファイルに対しては有効になりません。
 Shared/libとShared/classes内に同一のパッケージ名、クラス名のクラスが存在した場合は、Shared/classesディレクトリ内のクラスがロードされます。

■設定の確認

 IJServerを起動すると起動時のクラスパスの情報が以下の起動情報(info.log)およびコンテナログ(container.log)に出力されます。起動情報およびコンテナログを参照することでクラスパスの設定を確認することができます。起動情報およびコンテナログは、Interstage管理コンソールの[ワークユニット] > “ワークユニット名” > [ログ参照]タブから参照できます。

 起動情報   : IJServer名\log\[プロセス通番]\info.log
 コンテナログ : IJServer名\log\[プロセス通番]\container.log
 起動情報   : IJServer名/log/[プロセス通番]/info.log
 コンテナログ : IJServer名/log/[プロセス通番]/container.log

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED