Ant EJB タスク ユーザマニュアル

by

Version 1.1 - 2000/07/18


目次


はじめに

AntはEnterprise Java Beans (EJB)を開発するためのたくさんのオプショナルタスクを用意しています。 一般的に、これらのタスクはベンダーのEJBサーバに固有なものです。 今のところ、Weblogic 4.5.1と5.1 EJBサー バをサポートしています 。将来的には、他のEJBサーバ製品についてもサポー トしたいと考えています。


EJBタスク

タスクアプリケーションサーバ
ddcreatorWeblogic 4.5.1
ejbcWeblogic 4.5.1
wlrunWeblogic 4.5.1 and 5.1
wlstopWeblogic 4.5.1 and 5.1
ejbjarWeblogic 5.1

ddcreator

説明:

ddcreatorはWeblogicのテキストベースの展開記述子のセットを、シリアライズされたEJB展開記述子にコンパイルします。 どのテキストベースの配備記述子が選択され、コンパイルされるかは、Antの標準的な包含・除外選択メカニズムを基にしています。

パラメータ:

属性 説明 必須
descriptors 記述子が選択される際に、基準となるディレクトリ はい
dest シリアライズされた展開記述子が書き込まれるディレクトリ Yes
classpath ベースとなるWeblogicのddcreatorツールを起動するためのクラスパス。 これは weblogic.ejb.utils.DDCreator クラスを含んでいる必要があります。 No

<ddcreator descriptors="${dd.dir}" 
           dest="${gen.classes}" 
           classpath="${descriptorbuild.classpath}">
  <include name="*.txt" />
</ddcreator>

ejbc

説明

ejbcタスクは、Weblogicのejbcツールを起動します。このツールはシリアライズされた展開記述子を受取り、様々なEJBインターフェースとBeanクラスをテストし、WeblogicのEJBコンテナにBean(EJB)を展開するために必要なサポートクラスを生成します。 生成されるサポートクラスには、RMIスタブとスケルトン、EJBのホームインターフェース、リモートインターフェースが含まれます。

Antタスクがこのツールを起動することにより、いくつかのBean(EJB)を一つの操作だけでコンパイルすることができます。 コンパイルされるBean(EJB)は、シリアライズされた展開記述子をインクルードすることにより選択されます。 標準のantのincludeexclude構成により、インクルードされる展開記述子を選択することができます。

それぞれの記述子は、生成されたクラスが古くて再コンパイルする必要がないかを決めるためにチェックされます。 展開記述子はリモートインターフェースやホームインターフェース、実装クラスを発見するためにデシリアライズされます。 対応するソースファイルが決定され、ファイルの更新日時がチェックされます。 ファイルの更新日時とシリアライズされた展開記述子の更新日時が、クラスファイルの更新日時と比較され、クラスファイルが無いか、 クラスファイルが古い場合にはejbcツールが起動され、新しいクラスファイルが作成されます。

パラメータ:

属性 説明 必須
descriptors シリアライズされた配備記述子が選択されるときに基準となるディレクトリ Yes
dest 生成されたクラス、RMIスタブ、RMIスケルトンが書き込まれるディレクトリ Yes
manifest 書き込まれるマニフェスト・ファイルの名前。このファイルは処理されたEJBのエントリを含む Yes
src ホーム・インターフェース、リモート・インターフェース、Bean実装クラスのソース・ファイルを含む ディレクトリ・ツリーの基準となるディレクトリ Yes
classpath このクラスパスには、weblogic.ejbcクラスと、処理の対象となるBean、ホーム・インターフェース、 リモート・インターフェース等のクラスファイルの両方を含んでいる必要がある。 No

<ejbc descriptors="${gen.classes}"
           src="${src.dir}" 
           dest="${gen.classes}"
           manifest="${build.manifest}" 
           classpath="${descriptorbuild.classpath}">
  <include name="*.ser" />
</ejbc>

wlrun

説明:

wlrunタスクはweblogicサーバを起動するために使われる。 このタスクは、weblogicのインスタンスを別のJava仮想マシンの中で動かします。 Weblogicのインスタンスの動作を制御するために、いくつものパラメータが使われます。 タスク、つまりAntはweblogicのインスタンスが止まるまでは完了しないことに注意しなければな りません。

パラメータ:

属性 説明 Required必須
home Weblogicのホームとして使われる場所。weblogicがインストールされているディレクトリ。 Yes
classpath Weblogic サーバを走らせるJava仮想マシンに使われるクラスパス。 これには通常Weblogicのブート・クラスパスがセットされます。 Yes
wlclasspath Weblogicサーバが使うweblogicのクラスパス No
properties weblogicホーム・ディレクトリにある、サーバのプロパティ・ファイルのファイル名です。 このファイルはweblogicのインスタンスを制御するために使われます。 Yes
name weblogicホームにある、起動されるweblogicサーバの名前。 デフォルトは"myserver"です。 No
policy Weblogicホーム・ディレクトリにあるセキュリティ・ポリシー・ファイルの名前。 もし指定されていなければ、デフォルトのポリシー・ファイルweblogic.policyが使われます。 No
jvmargs Weblogicインスタンスを動かすために使われるJava仮想マシンに渡す追加の引数文字列です。 No
args Weblogicインスタンスに渡される追加の引数文字列 No

wlstop

説明:

wlstopタスクは、現在動いているweblogicインスタンスを停止するために使われます。 インスタンスを停止するためには、ユーザネームとパスワードの両方を与える必要があります。 これらはインスタンスを停止するためのビルド・スクリプトの中に平文で(暗号化されずに)格納されます。 セキュリティ上の理由で、このタスクは開発環境だけに適しています。

パラメータ:

属性 説明 必須
classpath Weblogicのシャットダウン・コメント[訳注:シャットダウン・コマンドの間違い?]を動かすJVMにより使われるクラスパス Yes
user サーバをシャットダウンするときに使われるアカウントのユーザ名 Yes
password userパラメータで指定されたアカウントに対するパスワード Yes
url T3コネクタに対してリッスンするポートを記述したURL。例えば、t3://localhost:7001 Yes
delay サーバが停止してからの遅延時間を、秒単位で指定。デフォルトは、ただちにシャットダウン。 No

ejbjar

説明:

このタスクは、任意のEJB1.1 jar ファイルのビルドをサポートするために設計されました。 現在サポートしているのは、'vanilla' EJB1.1 jarファイルです - 例えば、ユーザが生成したクラスファイルと、 配備記述子だけを含むような。ネストした要素がベンダ固有の配備ツールをサポートするためにサポートされています。 [訳注:"ネストした要素"とは、具体的にどういうことなのか不明] 今のところ、ネストした要素は、Weblogic 5.1のweblogic.ejbcツールを用いてセッション/エンティティBeanをビルドするためと、 TOPLink for Weblogic 2.5.1-enabledなエンティティBeanをビルドするために用意されています。

このタスクは、ejb jar ファイルを作るための2つのアプローチをサポートしています。 一つめのアプローチは、配備記述子ファイルの特別な命名規約を仮定します。 例えば、Account Beanに対しては、配備記述子はAccount-ejb-jar.xmlのようになります。 この命名規約により、タスクは、ソース・ツリーの中での位置によらずに配備記述子ファイルを識別できます。 また、生成する.jarファイルのファイル名を決める際にも利用できます。 先ほどの例では、.jarファイルはAccount.jarとなります。 ベンダー特有のファイルについては同様にファイル名がつけられていると仮定しています。 上のBeanのための、Weblogic固有の追加情報を定義した配備記述子ファイルは、Acount-weblogic-ejb-jar.xmlとなります。 2つめのアプローチは、命名規約を必要としません。 このアプローチでは、得られたejb jarに対して指定されたjar名を付与します。 もし、Jar名がある場合には、ネーミング・ルールは必要ありません。 もしjar名が指定されていない場合には、配備記述子ファイルは命名規約に従っていると期待されます。

タスクはディレクトリを操作するためのタスクとして作用し、見つかった配備記述子ファイルに対してアクションを実行します。 求めるEJB1.1が見つかり、また、アプリケーション・サーバの記述子が見つからないことが保証されるように、包含と除外が設定されているべきです。 それぞれの記述子が見つかるたびに、ejbjarは配備記述子を走査し、beanを実装したクラス・ファイルを決定します。 これらのファイルは配備記述子に従って、所定の形式のEJB Jarファイルに組み立てられます。 注意しなければならないのは、サポートクラスと呼ばれる、Beanによって使われるが、Beanのインターフェースの一部ではないクラスはjarには含まれないことです。 これらのクラスは、サポートjarファイルに集められる必要があります。

もしベンダー固有の配備要素がなければ、このタスクは単に一般的なEJB Jarを作るだけです。 このようなjarは、一般的にはベンダー固有の配備ツールへの入力として使われます。 ネストした配備対象の要素に対し、ベンダー固有の配備ツールは、ベンダーのEJBコンテナに配備するためのjarファイルを作るために使われます。 今の時点では、サポートされているのはWeblogicのejbcというツールだけです。

jarファイルは、(ソース等と比較して日付が)古い場合だけビルドされます。 それぞれの配備ツール要素は、ターゲットのjarファイルが、beanを構成するクラス・ファイルや配備記述子よりも古いかどうかを調べます。 これらがjarファイルより新しい場合にはjarファイルはリビルドされますが、そうでない場合には、jarファイルは最新であるとだけ記録されます。

パラメータ:

属性 説明 必須
descriptordir EJB配備記述子を探すときに、基準となるディレクトリ。 もしこの属性が指定されていない場合には、配備記述子は'srcdir'属性で定義したディレクトリに置かれている必要があります。 No
srcdir beanを構成するクラスファイルが格納されているディレクトリ。 注意すべき点として、全てのファイルが同じディレクトリ・ツリーにある場合には、このディレクトリはdescriptordirと同じでも構いません。 はい
destdir 生成されたjarファイルが格納される、基準となるディレクトリ。 jarファイルはdescriptordir名前空間の場所に対応したディレクトリに格納されます。 この属性は、タスクがジェネリックなjarを生成する場合のみ利用されます。 (例えば、ベンダー固有ではない配備要素が指定された場合) はい
basejarname 生成されたjarファイルの基となる名前。この要素が指定されていた場合には、 ジェネリックなjarファイル名は、basejarnameをプレフィックスとして使い('genericjarsuffix'属性に指定された値をサフィックスとして使います)、 また、最終的なejb jarファイル名としても使います。(ネストした要素で指定されたサフィックスが付加されます) No
basenameterminator 見つかった配備記述子の名前より部分文字列を取り出すときに使われる文字列であり、これは、関連する配備記述子(例えば、weblogic記述子)を見つけるために使われます。 例えば、ベース・ネームが'.'であり、配備記述子が'FooBean.ejb-jar.xml'の場合には、'FooBean'がベース・ネームとなります。 さらに、FooBean.weblogic-ejb-jar.xmlとFooBean.weblogic-cmp-rdbms-jar.xmlが同じように使われ、生成されるjarファイル名はFooBean-generic.jar及びFooBean-wl.jarとなります。この属性は、'basejarname'属性が使われている場合には使われません。 いいえ、デフォルトは、'-'
genericjarsuffix 配備記述子のベースとなる名前に付加される文字列であり、ジェネリックなEJB jar ファイルのファイル名を決めるときに使われます いいえ、デフォルトは、'-generic.jar'

ベンダー固有の配備要素

それぞれのベンダ固有のネストした要素は、ベンダのEJBコンテナに配備可能なjarの生成を制御します。 サポートされている配備要素のパラメータについて、ここで詳しく説明します。

Weblogicの要素

属性 説明 必須
destdir 生成されたWeblogic用のjarファイルが格納される際の基準となるディレクトリ。 Jarファイルは、 descriptordir名前空間に対応したディレクトリに格納されます。 Yes
genericjarsuffix ジェネリックなjarは、Weblogic用のjarを生成する中間段階のステップとして作成されます。 ジェネリックなjarファイルを作成する際のサフィックスは、ジェネリックなjarファイルを残しておくのでない限りは、特に重要ではありません。 しかし、サフィックスの設定と同じにしてはいけません。 いいえ、デフォルトは、'-generic.jar'
suffix WebLogic EJB jar ファイルのファイル名を決める際に配備記述子に追加される文字列の値。 いいえ、デフォルトは、'.jar'
classpath weblogicのejbcツールを実行する際に用いるクラス・パス。 注意すべき点として、通常、Beanをコンパイルするために必要なクラスがクラス・パスに存在する必要があります。 しかし、今は、ejbc ツールを(Antとは別の)JVMで動かさないとならない原因となっています。 いいえ
keepgeneric ejbcに対するインプットとして指定されたジェネリックなファイルを保持すべきかどうかを指定する いいえ、デフォルトは、false

TOPLink for Weblogicの要素

属性 説明 必須
destdir 生成されたWeblogic用のjar ファイルが格納される際の基準となるディレクトリ。 Jarファイルは、 descriptordir名前空間に対応したディレクトリに格納されます。 はい
genericjarsuffix ジェネリックなjarは、Weblogic用のjarを生成する中間段階のステップとして作成されます。 ジェネリックなjarファイルを作成する際のサフィックスは、ジェネリックなjarファイルを残しておくのでない限りは、特に重要ではありません。 しかし、サフィックスの設定と同じにしてはいけません。 いいえ、デフォルトは、'-generic.jar'
suffix WebLogic EJB jar ファイルのファイル名を決める際に配備記述子に追加される文字列の値。 いいえ、デフォルトは'.jar'
classpath weblogicのejbcツールを実行する際に用いるクラスパス。 注意すべき点として、通常、beanを構築するためのクラスファイルは、クラスパスで指定したディレクトリに格納されていなければならない。 しかし、今は、ejbc ツールを(Antとは別の)JVMで動かさないとならない原因となっている。 いいえ
keepgeneric ejbcに対するインプットとして指定されたジェネリックなファイルを保持すべきかどうかを指定する いいえ、デフォルトは、false
toplinkdescriptor 'descriptordir' ディレクトリに含まれる、TOPLink配備記述子ファイルの名前を指定する はい
toplinkdtd TOPLink DTDファイルの位置を指定する。ファイルパス、あるいはファイルのURLのどちらでも良い。 この属性は必須ではないが、ローカルなDTDが推奨されている。 いいえ、デフォルトは、www.objectpeople.comにあるDTDファイル

この例では、ejbjarを、Weglogic EJBコンテナに 配備するためのejbjarを生成するために用いています。 この例では、配備記述子に用いる命名規約が必要です。 このフォーマットを用いると、配備記述子ディレクトリ毎に見つかる'*-ejb-jar.xml'のそれぞれのバリエーションごとに ejb jarファイルを生成します。
    <ejbjar srcdir="${build.classes}"
            descriptordir="${descriptor.dir}">
      <weblogic destdir="${deploymentjars.dir}"
                classpath="${descriptorbuild.classpath}"/>
      <include name="**/*-ejb-jar.xml"/>
      <exclude name="**/*weblogic*.xml"/>
    </ejbjar>
この例では、ejbjarを、Weblogic EJB コンテナ用の、単一の配備用のjarを生成するために用いています。 この例では、配備記述子のファイル名の命名規約を必要としません。 これは、一つのejb jarファイル - 'TheEJBJar.jar'を生成します。
    <ejbjar srcdir="${build.classes}"
            descriptordir="${descriptor.dir}"
            basejarname="TheEJBJar">
      <weblogic destdir="${deploymentjars.dir}"
                classpath="${descriptorbuild.classpath}"/>
      <include name="**/ejb-jar.xml"/>
      <exclude name="**/weblogic*.xml"/>
    </ejbjar>
この例では、ejbjarを、TOPLink-enabledなWeblogic EJB コンテナ用の、エンティティ Beanのjarを生成するために用いています。 この例では、配備記述子のファイル名の命名規約を必要としません。 これは、一つのTOPLink-enabled ejb jarファイル - 'Address.jar'を生成します。
    <ejbjar srcdir="${build.dir}"
            destdir="${solant.ejb.dir}"
            descriptordir="${descriptor.dir}"
            basejarname="Address">
            <weblogictoplink destdir="${solant.ejb.dir}"
                    classpath="${java.class.path}"
                    keepgeneric="false"
                    toplinkdescriptor="Address.xml"
                    toplinkdtd="file:///dtdfiles/toplink-cmp_2_5_1.dtd"
                    suffix=".jar"/>
            <include name="**/ejb-jar.xml"/>
            <exclude name="**/weblogic-ejb-jar.xml"/>
    </ejbjar>
[訳注: これは西野 亨が翻訳しました.日本語訳に対するコメントがあれば、 jajakarta-report@nekoyanagi.comに送って下さい。]