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

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

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

 ここではIJServerが使用するクラスやアプリケーションが使用するクラスの設定方法について説明します。

■XMLパーサ

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

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

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

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


 ディレクトリ名の最後が“.jar”、または“.zip”で終了するディレクトリをクラスパスに指定する場合は、最後にパスセパレータ(Solaris OE/Linuxの場合は"/"、Windowsの場合は"\")を付加してください。

■IJServer内で共通のクラス

 ここでは、IJServer内で共通に使用するクラスの設定方法について説明します。
 IJServer内で共通に使用するクラスの設定方法はワークユニットのクラスパスに設定する方法と、IJServerのSharedディレクトリ内に保管する方法があります。

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

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


 ディレクトリ名の最後が“.jar”、または“.zip”で終了するディレクトリをクラスパスに指定する場合は、最後にパスセパレータ(Solaris OE/Linuxの場合は"/"、Windowsの場合は"\")を付加してください。

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

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

 Shared/libとShared/classes内に同一のパッケージ名、クラス名のクラスが存在した場合は、Shared/classesディレクトリ内のクラスがロードされます。
 本ディレクトリ内のクラスまたはjarファイルは再活性およびクラスのオートリロードの対象外のため、置き換えた場合にはIJServerを再起動するまで反映されません。


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

■環境変数: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ディレクトリ内のクラスがロードされます。
 本ディレクトリ内のクラスまたはjarファイルは再活性およびクラスのオートリロードの対象です。


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

All Rights Reserved, Copyright(C) 富士通株式会社 2005