BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > WebLogic Server アプリケーションの開発 > WebLogic Server アプリケーションのパッケージ化 |
WebLogic Server アプリケーションの開発
|
WebLogic Server アプリケーションのパッケージ化
以下の節では、WebLogic Server コンポーネントのパッケージ化について説明します。コンポーネントは、WebLogic Server にデプロイする前にパッケージ化します。
WebLogic Server J2EE アプリケーションは、J2EE 仕様に従ってパッケージ化されます。J2EE では、コンポーネントの動作とパッケージ化が汎用的で移植性の高い方法で定義されています。このため、実行時コンフィグレーションはコンポーネントを実際にアプリケーション サーバにデプロイするときに行います。
J2EE には、Web アプリケーション、EJB モジュール、エンタープライズ アプリケーション、クライアント アプリケーション、およびリソース アダプタ用のデプロイメント仕様が含まれています。J2EE では、どのようにアプリケーションをターゲット サーバにデプロイするかは指定されておらず、標準のコンポーネントまたはアプリケーションをパッケージ化する方法だけが指定されています。
コンポーネントのタイプごとに、J2EE には必要なファイルとそれらのディレクトリ構造上の格納場所が定義されています。コンポーネントとアプリケーションは、多くの場合、EJB とサーブレットの Java クラス、リソース アダプタ、Web ページとサポート ファイル、XML 形式のデプロイメント記述子、およびその他のコンポーネントが格納された JAR ファイルで構成されています。
WebLogic Server にデプロイできる状態のアプリケーションには、WebLogic 固有のデプロイメント記述子が必要な場合があります。また、WebLogic EJB、RMI、または JSP コンパイラで生成されたコンテナ クラス (オプション) が含まれることもあります。
詳細については、J2EE 1.3 仕様 (http://java.sun.com/j2ee/download.html#platformspec) を参照してください。
Java の jar ツールで作成される JAR (Java ARchive: Java アーカイブ) ファイルには、1 つのディレクトリ内のファイルが、ディレクトリ構造を維持したまま統合されます。Java クラスローダは、クラスパス内のディレクトリを検索するのと同じように、JAR ファイル内の Java クラス ファイル (および他のファイル タイプ) を検索できます。クラスローダはディレクトリまたは JAR ファイルを検索できるので、「展開された」ディレクトリまたは JAR ファイルの形式で、J2EE コンポーネントを WebLogic Server にデプロイできます。
JAR ファイルは、コンポーネントとアプリケーションをパッケージ化して配布するのに役立ちます。簡単にコピーでき、展開されたディレクトリよりも処理するファイル数が少なく、ファイル圧縮によってディスク スペースも節約できます。管理サーバが複数の WebLogic Server を持つドメインを管理する場合、JAR ファイルまたは EAR ファイルしかデプロイできません。Administration Console は展開されたディレクトリを管理対象サーバにコピーしないからです。
jar ユーティリティは、Java Development Kit の bin ディレクトリに格納されています。パスに javac が指定されている場合、jar も指定されています。jar コマンドの構文と動作は、UNIX tar コマンドとほぼ同じです。
最初のフラグは、操作 (作成 (create)、展開 (extract)、または一覧表示 (tell)) を指定します。f フラグの後には、JAR ファイル名を指定しなければなりません。f フラグを指定しないと、jar は JAR ファイルの内容を stdin から読み込むか、または stdout に書き出します。このような処理は一般的ではありません。jar コマンド オプションの詳細については、JDK ユーティリティのドキュメントを参照してください。
コンポーネントとアプリケーションには、ディレクトリまたは JAR ファイルの内容について説明したデプロイメント記述子という XML ドキュメントが組み込まれています。デプロイメント記述子は、XML タグでフォーマットされたテキスト ドキュメントです。J2EE 仕様では、J2EE コンポーネントおよびアプリケーション用の標準的で移植性の高いデプロイメント記述子が定義されています。BEA では、コンポーネントまたはアプリケーションを WebLogic Server 環境にデプロイするときに使用する WebLogic 固有のデプロイメント記述子をさらに定義しています。
表 4-1 に、コンポーネントとアプリケーションのタイプと、それらの J2EE 標準および WebLogic 固有のデプロイメント記述子を示します。
コンポーネントまたはアプリケーションをパッケージ化する場合は、デプロイメント記述子を格納するディレクトリ (WEB-INF または META-INF) を作成し、次にそのディレクトリ内に XML デプロイメント記述子を作成します。
手動でデプロイメント記述子を作成することも、WebLogic 固有の Java ベース ユーティリティを使用して自動的に生成することもできます。デプロイメント記述子の生成の詳細については、デプロイメント記述子の自動生成を参照してください。
開発者から J2EE 準拠の JAR ファイルを受け取った場合、そのファイルには既に J2EE 標準のデプロイメント記述子が組み込まれています。その JAR ファイルを WebLogic Server にデプロイするには、その JAR ファイルの内容をディレクトリに展開し、WebLogic 固有のデプロイメント記述子とその他の生成されたコンテナ クラスを追加して、新旧のファイルが入った新しい JAR ファイルを作成します。JAR ユーティリティには、「u」オプションが付いていて、このオプションを使用するとファイルを変更したり、既存の JAR ファイルに直接ファイルを追加できます。
WebLogic Server には、Web アプリケーション、エンタープライズ JavaBean (バージョン 2.0) などの J2EE コンポーネントのデプロイメント記述子を自動的に生成する Java ベースのユーティリティがあります。
これらのユーティリティは、ステージング ディレクトリにアセンブルしたオブジェクトを検証し、サーブレット クラス、EJB クラス、および既存の記述子を基に適切なデプロイメント記述子を構築します。ユーティリティは、コンポーネントごとに標準 J2EE デプロイメント記述子と WebLogic 固有のデプロイメント記述子の両方を生成します。
WebLogic Server には、以下のユーティリティがあります。
DDInit ユーティリティは、ユーザのコンポーネントまたはアプリケーションに完全かつ厳密に従ったデプロイメント記述子ファイルを作成しようとしますが、必要な要素の多くに対して値を推測しなければなりません。この推測が間違っていると、コンポーネントまたはアプリケーションをデプロイするときに WebLogic Server はエラーを返します。この場合、コンポーネントまたはアプリケーションをアンデプロイし、Administration Console のデプロイメント記述子エディタでデプロイメント記述子を編集してから、再デプロイする必要があります。デプロイメント記述子エディタの使用方法の詳細については、デプロイメント記述子の編集.を参照してください。
エンティティ Bean 間の関係は DDInit 特有の問題です。DDInit は 1 対 1 の双方向の関係を断定することしかできないからです。「多」の側面を持つ関係の場合、DDInit は関係の性質を推測します。
WEB-INF ディレクトリ、JSP ファイル、および Web アプリケーションを構成するその他のオブジェクトを含む c:\stage というディレクトリを作成したものの、web.xml および weblogic.xml デプロイメント記述子を作成していないとします。それらを自動的に生成するには、次のコマンドを実行します。
java weblogic.marathon.ddinit.WebInit c:\stage
ユーティリティによって web.xml および weblogic.xml デプロイメント記述子が生成され、WEB-INF ディレクトリに配置されます (WEB-INF ディレクトリがない場合は DDInit によって作成されます)。
BEA では、WebLogic Server アプリケーションおよびコンポーネントのデプロイメント記述子の編集用に以下の 2 つのツールを提供しています。
いずれかのエディタを使用して、以下のデプロイメント記述子に対して、既存の要素の更新、新しい要素の追加、既存の要素の削除を行うことができます。
XML ファイルを編集するには、完全な Java ベースの XML スタンドアロン エディタである BEA XML エディタを使用します。この XML エディタは、XML ファイルを作成および編集するためのシンプルで使いやすいツールです。このツールでは、XML ファイルの内容を、階層的な XML ツリー構造と実際の XML コードの両方で表示します。このようにドキュメントを 2 通りに表示することにより、以下のいずれかの編集方法を選択できます。
BEA XML エディタは、指定した DTD または XML スキーマを基に XML コードを検証します。
BEA XML エディタの使用法およびダウンロードの詳細については、BEA dev2dev Online を参照してください。
EJBGen は、Javadoc マークアップを使用して EJB デプロイメント記述子ファイルを生成するエンタープライズ JavaBeans 2.0 のコード ジェネレータ (コマンドライン ツール) です。Bean クラス ファイルに javadoc タグで注釈を付け、EJBGen を使用してリモート クラスとホーム クラス、および EJB アプリケーション用のデプロイメント記述子ファイルを生成し、編集および保守が必要な複数の EJB ファイルを 1 つにまとめます。
EJBGen の詳細については、『WebLogic エンタープライズ JavaBeans プログラマーズ ガイド』を参照してください。
Administration Console のデプロイメント記述子エディタの使い方
Administration Console のデプロイメント記述子エディタは、メインの Administration Console に非常に似ています。左側のペインでは、デプロイメント記述子ファイルの要素がツリー形式で表示され、右側のペインには、特定の要素を更新するためのフォームがあります。
エディタを使用する場合、インメモリ デプロイメント記述子のみを更新するか、またはインメモリおよびディスク ファイルの両方を更新できます。特定の要素を更新してから [適用] ボタンをクリックするか、[作成] ボタンをクリックして新しい要素を作成すると、WebLogic Server のメモリ内のデプロイメント記述子のみが更新されます。変更はまだディスクには書き込まれていません。ディスクに保存するには、[永続化] ボタンをクリックします。変更を明示的にディスクに永続化しない場合、WebLogic Server を終了して再起動すると、変更は失われます。
この節では、Administration Console のデプロイメント記述子エディタを使用して以下の EJB デプロイメント記述子を編集する手順を説明します。
EJB 固有のデプロイメント記述子の要素の詳細については、『WebLogic エンタープライズ JavaBeans プログラマーズ ガイド』を参照してください。
EJB デプロイメント記述子を編集する手順は次のとおりです。
http://host:port/console
この節では、Administration Console のデプロイメント記述子エディタを使用して、web.xml および weblogic.xml Web アプリケーション デプロイメント記述子を編集する手順を説明します。
Web アプリケーション デプロイメント記述子の要素の詳細については、『Web アプリケーションのアセンブルとコンフィグレーション』を参照してください。
Web アプリケーション デプロイメント記述子を編集する手順は次のとおりです。
http://host:port/console
この節では、Administration Console のデプロイメント記述子エディタを使用して、ra.xml および weblogic-ra.xml リソース アダプタ デプロイメント記述子を編集する手順を説明します。
リソース アダプタ デプロイメント記述子の要素の詳細については、『WebLogic J2EE コネクタ アーキテクチャ』を参照してください。
リソース アダプタ デプロイメント記述子を編集する手順は次のとおりです。
http://host:port/console
エンタープライズ アプリケーションのデプロイメント記述子の編集
Administration Console のデプロイメント記述子エディタを使用してエンタープライズ アプリケーション デプロイメント記述子 (application.xml および weblogic-application.xml) を編集する手順をこの節で説明します。
application.xml および weblogic-application.xml ファイルの詳細については、アプリケーション デプロイメント記述子の要素のapplication.xml デプロイメント記述子の要素を参照してください。
注意: 以下の手順は、application.xml ファイルおよび weblogic-application.xml ファイルの編集方法のみを説明するものです。エンタープライズ アプリケーションを構成するコンポーネントのデプロイメント記述子を編集する場合は、EJB デプロイメント記述子の編集、Web アプリケーションのデプロイメント記述子の編集、または リソース アダプタのデプロイメント記述子の編集を参照してください。
エンタープライズ アプリケーション デプロイメント記述子を編集する手順は次のとおりです。
http://host:port/console
Web アプリケーションがプログラムに基づく Java クライアントによってアクセスされる場合は、クライアント アプリケーションのパッケージ化を参照してください。この節では、サーバによるアプリケーション クラスのロード方法を説明しています。
Web アプリケーションをステージングおよびパッケージ化するには、次の手順に従います。
java weblogic.marathon.ddinit.WebInit staging-dir
staging-dir は、ステージング ディレクトリです。
デプロイメント記述子を生成する Java ベース ユーティリティ DDInit の詳細については、デプロイメント記述子の自動生成を参照してください。
代わりに、WEB-INF サブディレクトリに web.xml および weblogic.xml ファイルを手動で作成することもできます。
注意: web.xml および weblogic.xml ファイルの要素の詳細については、『Web アプリケーションのアセンブルとコンフィグレーション』を参照してください。
jar cvf myapp.war -C staging-dir
作成された WAR ファイルは、エンタープライズ アプリケーション (EAR ファイル) に追加するか、Administration Console または weblogic.Deployer コマンドライン ユーティリティを使用して単独でデプロイできます。
注意: これで、Web アプリケーションのパッケージ化が完了しました。WebLogic Server におけるアプリケーションのデプロイメントの手順については、「アプリケーションのデプロイメント」を参照してください。
1 つまたは複数のエンタープライズ JavaBean (EJB) を 1 つのディレクトリにステージングして、それらを EJB JAR ファイルにパッケージ化できます。EJB がプログラムに基づく Java クライアントによってアクセスされる場合は、クライアント アプリケーションのパッケージ化を参照してください。この節では、WebLogic Server による EJB クラスのロード方法を説明しています。
エンタープライズ JavaBean (EJB) をステージングおよびパッケージ化する手順は次のとおりです。
java weblogic.marathon.ddinit.EJBInit staging-dir
staging-dir は、ステージング ディレクトリです。このユーティリティでは、EJB 2.0 用のデプロイメント記述子が生成されます。
デプロイメント記述子を生成する Java ベース ユーティリティ DDInit の詳細については、デプロイメント記述子の自動生成を参照してください。
または、EJB デプロイメント記述子ファイルを手動で作成することもできます。META-INF サブディレクトリに ejb-jar.xml および weblogic-ejb-jar.xml ファイルを作成します。この Bean がコンテナ管理される永続的なエンティティ Bean である場合、META-INF ディレクトリに、weblogic-rdbms-cmp-jar-bean_name.xml デプロイメント記述子を作成し、その Bean のエントリを追加します。weblogic-ejb-jar.xml ファイルの <type-storage> 属性を使用して、Bean をこの CMP デプロイメント記述子にマッピングします。
注意: エンタープライズ Bean のコンパイルと EJB デプロイメント記述子の作成については、『WebLogic エンタープライズ JavaBeans プログラマーズ ガイド』を参照してください。
jar cvf jar-file.jar -C staging-dir
このコマンドによって、WebLogic Server にデプロイ可能な JAR ファイルが作成されます。
-C staging-dir オプションを指定すると、jar コマンドはディレクトリを staging-dir に変更します。これにより、JAR ファイルに記録されるディレクトリ パスがエンタープライズ Bean のステージング ディレクトリを基準にした相対パスとなります。
エンタープライズ Bean には、コンテナ クラスが必要となります。コンテナ クラスとは、WebLogic EJB コンパイラによって生成され、エンタープライズ Bean を WebLogic Server にデプロイできるようにするためのクラスです。WebLogic EJB コンパイラは、EJB JAR ファイル内のデプロイメント記述子を読み取って、コンテナ クラスの生成方法を決定します。WebLogic EJB コンパイラは、エンタープライズ Bean をデプロイする前に JAR ファイル上で実行できます。また、デプロイメント時に WebLogic Server にコンパイラを実行させることもできます。WebLogic EJB コンパイラに関して不明な点があれば、『WebLogic エンタープライズ JavaBeans プログラマーズ ガイド』を参照してください。
注意: これで、EJB のパッケージ化が完了しました。WebLogic Server におけるアプリケーションのデプロイメントの手順については、「アプリケーションのデプロイメント」を参照してください。
WebLogic Server では、ejb-client.jar ファイルを使用できます。ejb-client.jar ファイルを作成するには、この機能を Bean の ejb-jar.xml デプロイメント記述子ファイルで指定してから、weblogic.ejbc を使用して ejb-client.jar ファイルを生成します。ejb-client.jar には、ejb-jar ファイルの EJB を呼び出すためにクライアント プログラムに必要なクラス ファイルが格納されます。これらのファイルは、クライアントをコンパイルするために必要なクラスです。この機能を指定した場合、WebLogic Server は ejb-client.jar を自動的に作成します。
詳細については、『WebLogic エンタープライズ JavaBeans プログラマーズ ガイド』の「WebLogic Server コンテナ用の EJB のパッケージ化」を参照してください。
1 つまたは複数のリソース アダプタを、1 つのディレクトリにステージングした後で Java アーカイブ (JAR) にパッケージ化できます。リソース アダプタをパッケージ化する前に、「WebLogic Server J2EE アプリケーション クラスローディング」を読み、WebLogic Server がクラスをどのようにロードするかを理解してください。
リソース アダプタをステージングおよびパッケージ化するには、次の手順に従います。
注意: ra.xml の文書型定義の詳細については、次の Sun Microsystems のドキュメントを参照してください (http://java.sun.com/dtd/connector_1_0.dtd)
注意: weblogic-ra.xml 文書型定義の詳細については、『WebLogic J2EE コネクタ アーキテクチャ』を参照してください。
jar cvf jar-file.rar -C staging-dir
このコマンドによって作成された RAR は、WebLogic Server にデプロイすることも、またはアプリケーション アーカイブ (EAR) にパッケージ化することもできます。
-C staging-dir オプションを指定すると、JAR コマンドはディレクトリを staging-dir に変更します。これにより、JAR に記録されるディレクトリ パスがリソース アダプタのステージング ディレクトリを基準にした相対パスとなります。
エンタープライズ アーカイブには、関連するアプリケーションの一部である EJB および Web モジュールが格納されます。この EJB と Web モジュールは、エンタープライズ アプリケーション デプロイメント記述子ファイルと共に、拡張子 .ear のついた別の JAR ファイルにパッケージ化されます。
エンタープライズ アプリケーション デプロイメント記述子ファイル
EAR ファイルの META-INF サブディレクトリには、application.xml デプロイメント記述子が入っています。このデプロイメント記述子のフォーマット定義は Sun Microsystems によって提供されています。application.xml デプロイメント記述子によって、EAR ファイルにパッケージ化されるモジュールが識別されます。
application.xml ファイルの DTD は、http://java.sun.com/j2ee/dtds/application_1_2.dtd で提供されています。
application.xml 内では、アプリケーションを構成するモジュールおよびアプリケーションで使用されるセキュリティ ロールなどの項目を定義します。次に、Pet Sotre サンプルの application.xml ファイルを示します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD
J2EE Application 1.2//EN'
'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>estore</display-name>
<description>Application description</description>
<module>
<web>
<web-uri>petStore.war</web-uri>
<context-root>estore</context-root>
</web>
</module>
<module>
<ejb>petStore_EJB.jar</ejb>
</module>
<security-role>
<description>the gold customer role</description>
<role-name>gold_customer</role-name>
</security-role>
<security-role>
<description>the customer role</description>
<role-name>customer</role-name>
</security-role>
</application>
補足デプロイメント記述子、weblogic-application.xml には WebLogic 固有のデプロイメント情報が収められます。このデプロイメント記述子は省略可能で、アプリケーション スコープのコンフィグレーションを行うときにのみ必要です。
アプリケーション スコープとは、WebLogic Server のコンフィグレーション全体に対してではなく、特定のエンタープライズ アプリケーションに対してリソースをコンフィグレーションすることです。リソースの例としては、アプリケーションで使用される XML パーサ、EJB エンティティ キャッシュ、JDBC 接続プールなどがあります。アプリケーション スコープの最大の利点は、特定のアプリケーションに対するリソースがそのアプリケーション専用になることです。
アプリケーション スコーピングを使用するもう 1 つのメリットは、リソースを EAR ファイルと関連付けることにより、WebLogic Server の別のインスタンスで、そのサーバのリソースをコンフィグレーションせずにこの EAR ファイルを実行できることです。
アプリケーション スコーピングについては、「アプリケーション スコープの JDBC 接続プール」、および「XML アプリケーション スコーピング」を参照してください。
weblogic-application.xml デプロイメント記述子要素については、アプリケーション デプロイメント記述子の要素のweblogic-application.xml デプロイメント記述子の要素を参照してください。
エンタープライズ アプリケーションのパッケージ化 : 主な手順
エンタープライズ アプリケーションがプログラムに基づく Java クライアントによってアクセスされる場合は、クライアント アプリケーションのパッケージ化を参照してください。この節では、WebLogic Server によるエンタープライズ アプリケーション クラスのロード方法を説明しています。
エンタープライズ アプリケーションをステージングおよびパッケージ化するには、次の手順に従います。
jar cvf application.ear -C staging-dir
WebLogic Server アプリケーションには必要ありませんが、J2EE にはクライアント アプリケーションをデプロイするための仕様が定義されています。J2EE クライアント アプリケーション モジュールは、JAR ファイルにパッケージ化されます。この JAR ファイルには、クライアント JVM (Java 仮想マシン) で実行される Java クラスと、EJB (エンタープライズ JavaBeans)、およびクライアントによって使用されるその他の WebLogic Server リソースに関するデプロイメント記述子が収められます。
J2EE クライアントに対しては、事実上の標準である Sun のデプロイメント記述子 application-client.xml が使用され、補足デプロイメント記述子には WebLogic 固有のデプロイメント情報が収められます。
注意: これらのデプロイメント記述子については、クライアント アプリケーションのデプロイメント記述子の要素のapplication-client.xml のデプロイメント記述子の要素を参照してください。
アプリケーションの配布を簡素化するため、J2EE によってクライアントサイド コンポーネントを WebLogic Server で使用されるサーバサイド モジュールと共に 1 つの EAR ファイルに含める方法を定義します。これによって、サーバサイドとクライアントサイドのコンポーネントを 1 つのユニットとして配布できます。
クライアント JVM は、アプリケーション用に作成した Java クラスと、そのアプリケーションが依存する Java クラス (WebLogic Server クラスなど) を見つけることができなければなりません。クライアント アプリケーションのステージングでは、クライアントで必要なすべてのファイルを 1 つのディレクトリにコピーし、そのディレクトリを JAR ファイルにまとめます。クライアント アプリケーション ディレクトリの最上位には、アプリケーションを起動するバッチ ファイルまたはスクリプトを置くことができます。最後に、classes サブディレクトリを作成して Java クラスと JAR ファイルを格納し、起動スクリプト内のクライアントの Class-Path に追加します。また、Java Runtime Environment (JRE) を Java クライアント アプリケーションに組み込むこともできます。
注意: Class-Path マニフェスト エントリのクライアント コンポーネント JAR での使用は、J2EE 標準ではないため移植性はありません。
JAR ファイル マニフェストの Main-Class 属性は、クライアント アプリケーションのメイン クラスを定義しています。クライアントは、通常、java:/comp/env JNDI ルックアップを使用して Main-Class 属性を実行します。デプロイヤが、クライアントの Main-Class 属性を呼び出す前に JNDI ルックアップ エントリの実行時値を指定し、コンポーネント ローカル JNDI ツリーに入力します。クライアント デプロイメント記述子で JNDI ルックアップ エントリを定義します (クライアント アプリケーションのデプロイメント記述子の要素.を参照)。
J2EE EAR ファイルからクライアントサイド JAR ファイルを展開して、デプロイ可能な JAR ファイルを作成するには、weblogic.ClientDeployer を使用します。weblogic.ClientDeployer クラスは、Java コマンド ラインで次の構文を使用して実行します。
java weblogic.ClientDeployer ear-file client
ear-file 引数は、1 つまたは複数のクライアント アプリケーション JAR ファイルが格納されている展開されたディレクトリか、または拡張子 .ear を持つ Java アーカイブ ファイルです。
EAR ファイルからクライアントサイドの JAR ファイルが展開されたら、weblogic.j2eeclient.Main ユーティリティを使用してクライアントサイド アプリケーションをブートストラップし、次のように WebLogic Server インスタンスを示すようにします。
J2EE クライアント アプリケーションのデプロイメントに関する考慮事項
J2EE クライアント アプリケーションのデプロイメントで特に考慮すべき事項を以下に示します。
ejb-ref
javax.jms.QueueConnectionFactory
javax.jms.TopicConnectionFactory
javax.mail.Session
javax.sql.DataSource
注意: デプロイメントの詳細については、WebLogic Server デプロイメントを参照してください。
Apache Ant による J2EE アプリケーションのパッケージ化
この節の各トピックでは、拡張可能 Java ベース ツール、Apache Ant を使用して J2EE アプリケーションを構築およびパッケージ化する方法を説明します。Ant は、make コマンドと似ていますが、Java アプリケーションを構築するためのツールです。Ant ライブラリは WebLogic Server に付属していて、製品パッケージから Java アプリケーションを簡単に構築できるようになっています。
開発者は、eXtensible Markup Language (XML) を使用して、Ant によるスクリプトを作成します。XML タグは構築対象、対象間の依存性、および対象を構築するための実行タスクを定義します。
Ant 機能の詳しい説明については、以下のサイトを参照してください。http://jakarta.apache.org/ant/manual/index.html
Ant には、Java ソース ファイルをコンパイルする javac タスクがあります。現在のディレクトリのすべての Java ファイルを classes ディレクトリにコンパイルする例を以下に示します。
<target name=”compile”>
<javac srcdir=”.” destdir=”classes”/>
</target>
javac タスクに関するすべてのオプションを確認したい場合は、Apache Ant のオンライン マニュアルを参照してください。
Ant から任意の Java プログラムを実行するには、カスタム Ant タスクを作成するか、java タスクを使用してそのままプログラムを実行します。ejbc または rmic などのタスクは、以下に示す java タスクによって実行されます。
コード リスト 4-1 WebLogic Server コンパイラの実行
<java classname="weblogic.ejbc" fork="yes" failonerror="yes">
<sysproperty key="weblogic.home" value="${WL_HOME}"/>
<arg line="-compiler java ${dist}/std_ejb_basic_containerManaged.jar
${APPLICATIONS}/ejb_basic_containerManaged.jar"/>
<classpath>
<pathelement path="${CLASSPATH}"/>
</classpath>
</java>
上記の例では、fork システム呼び出しを使用して、ejbc を実行する Java プロセスを作成します。この例では、system プロパティを指定して weblogic.home を定義し、arg タグでコマンド ライン引数を指定しています。呼び出し元である Java プロセスのクラスパスは、classpath タグで指定します。
前述のように、J2EE アプリケーションは、そのコンポーネント タイプによって以下のような特定のファイル拡張子の付いた JAR ファイルにパッケージ化されます。
これらのコンポーネントは、J2EE 仕様に従って構造化されます。標準 XML デプロイメント記述子だけでなく、コンポーネントも WebLogic Server 固有の XML デプロイメント記述子によってパッケージ化されます。
Ant が提供するタスクによって、JAR ファイルの構築が容易になります。JAR コマンドの機能に加えて、Ant では、EAR ファイルと WAR ファイルを構築する特別なタスクも提供しています。Ant を使用すれば、パス名を JAR アーカイブに表示されるとおりに指定でき、ファイル システムの元のパスと異なるパスでもかまいません。この機能は、デプロイメント記述子 (この中で J2EE が指定するアーカイブ内の正確な場所は、ソース ツリー内の場所とは一致しない場合がある) のパッケージ化に便利です。関連情報については、ZipFileSet コマンドに関する Apache Ant オンライン マニュアルを参照してください。
<war warfile="cookie.war" webxml="web.xml" manifest="manifest.txt">
<zipfileset dir="." prefix="WEB-INF" includes="weblogic.xml"/>
<zipfileset dir="." prefix="images" includes="*.gif,*.jpg"/>
<classes dir="classes" includes="**/CookieCounter.class"/>
<fileset dir="." includes="*.jsp,*.html">
</fileset>
</war>
J2EE デプロイメント ユニットをパッケージ化する手順は以下のとおりです。
構造が WAR ファイルと同じディレクトリ内にファイルをステージングし、そのディレクトリから JAR ファイルを作成しても、同じ結果が得られます。Ant JAR タスクの特別機能を使用することにより、ファイルを特定のディレクトリ階層にコピーする手間が省けます。
以下の例では、Web アプリケーションと EJB を 1 つずつ構築し、それらをまとめて EAR ファイルにパッケージ化しています。
<project name="app" default="app.ear">
<property name="wlhome" value="/bea/wlserver6.1"/>
<property name="srcdir" value="/bea/myproject/src"/>
<property name="appdir" value="/bea/myproject/config/mydomain/applications"/>
<target name="timer.war">
<mkdir dir="classes"/>
<javac srcdir="${srcdir}" destdir="classes" includes="myapp/j2ee/timer/*.java"/>
<war warfile="timer.war" webxml="timer/web.xml" manifest="timer/manifest.txt">
<classes dir="classes" includes="**/TimerServlet.class"/>
</war>
</target>
<target name="trader.jar">
<mkdir dir="classes"/>
<javac srcdir="${srcdir}" destdir="classes" includes="myapp/j2ee/trader/*.java"/>
<jar jarfile="trader0.jar" manifest="trader/manifest.txt">
<zipfileset dir="trader" prefix="META-INF" includes="*ejb-jar.xml"/>
<fileset dir="classes" includes="**/Trade*.class"/>
</jar>
<ejbc source="trader0.jar" target="trader.jar"/>
</target>
<target name="app.ear" depends="trader.jar, timer.war">
<jar jarfile="app.ear">
<zipfileset dir="." prefix="META-INF" includes="application.xml"/>
<fileset dir="." includes="trader.jar, timer.war"/>
</jar>
</target>
<target name="deploy" depends="app.ear">
<copy file="app.ear" todir="${appdir}/>
</target>
</project>
BEA では、Ant を実行する簡単なスクリプトを server/bin ディレクトリで提供しています。デフォルトでは、Ant は build.xml ビルド ファイルをロードしますが、-f フラグを使用すればこの指定はオーバーライドできます。以下のコマンドで、上記のビルド スクリプトを使用してアプリケーションを構築し、デプロイできます。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |