プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverアプリケーションの開発
12c (12.2.1.3.0)
E90359-04
目次へ移動
目次

前
次

4 分割開発ディレクトリ環境の作成

Java EEアプリケーションまたはモジュールの開発に使用できるWebLogic Server分割開発ディレクトリを作成するには、Java EEコンポーネントおよび共有クラスを構成し、基本的なbuild.xmlファイルを生成し、複数のEARプロジェクトを開発する必要があります。

この章の内容は次のとおりです。

分割開発ディレクトリ環境の概要

WebLogic分割開発ディレクトリ環境は、ディレクトリ・レイアウトと、Java EEアプリケーションの反復的なビルド、変更、およびデプロイメントを支援する関連Antタスクで構成されます。

他の開発フレームワークと比較して、WebLogic分割開発ディレクトリには、これらのメリットがあります。

  • 迅速な開発とデプロイメント。不必要なファイルのコピーを最小限に抑えることにより、分割開発ディレクトリのAntタスクはデプロイ可能なアーカイブ・ファイルまたは展開アーカイブ・ディレクトリを最初に生成しないで迅速なアプリケーションの再コンパイルと再デプロイを支援します。

  • シンプルな構築スクリプト。Oracle提供のAntタスクは、作成するJava EEモジュールおよびクラスを自動的に判別し、一般的なクラスパスの依存関係をサポートする適切な順序でコンポーネントをビルドします。多くの場合、プロジェクトの構築スクリプトはただ単にソース・ディレクトリとビルド・ディレクトリを識別し、Antタスクがそのデフォルト動作を実行できるようにするだけです。

  • ソース制御システムとの簡単な統合。分割開発ディレクトリは、ソース・ファイルと生成ファイルを完全に分離します。このため、編集可能なファイルのみをソース制御システムに維持することができます。また、ビルド・ディレクトリ全体を削除することでビルドをクリーン・アップすることもできます(ビルド・ファイルはプロジェクトの再ビルドで簡単に置換されます)。

ソース・ディレクトリとビルド・ディレクトリ

ソース・ディレクトリとビルド・ディレクトリは、分割開発ディレクトリ環境の基盤です。ソース・ディレクトリには、プロジェクトのすべての編集可能なファイル(Javaソース・ファイル、編集可能な記述子ファイル、JSP、静的コンテンツなど)が格納されます。アプリケーションのソース・ディレクトリは、「分割開発ディレクトリでのJava EEコンポーネントの配置」で説明されているディレクトリ構造のガイドラインに従って作成します。

ソース・ディレクトリの最上位レベルは、1つのJava EEモジュールのみを開発している場合であっても、常にエンタープライズ・アプリケーション(.earファイル)を表します。最上位ソース・ディレクトリの下のサブディレクトリには、次が含まれます。

  • エンタープライズ・アプリケーションのモジュール(EJBやWebアプリケーション)

    注意:

    分割開発ディレクトリ構造は、新しいリソース・アダプタ・コンポーネントの開発をサポートしていません。

  • エンタープライズ・アプリケーションの記述子ファイル(application.xmlおよびweblogic-application.xml)

  • アプリケーションの複数のモジュールで共有されるユーティリティ・クラス(例外、定数など)

  • アプリケーションのモジュールで使用されるライブラリ(コンパイル済み.jarファイル - サード・パーティのライブラリを含みます)

ビルド・ディレクトリの内容は、有効なソース・ディレクトリに対してwlcompile antタスクを実行すると自動的に生成されます。wlcompileタスクはソース・ディレクトリ内のEJB、Webアプリケーション、および共有のライブラリ・ディレクトリとクラス・ディレクトリを認識し、一般的なクラス・パスの要件をサポートする順序でそれらのコンポーネントをビルドします。補足的なAntタスクを使用すると、Webサービスをビルドするか、アノテーション付きのEJBコードからデプロイメント記述子ファイルを生成できます。

図4-1 ソース・ディレクトリとビルド・ディレクトリ

図4-1の説明が続きます
「図4-1 ソース・ディレクトリとビルド・ディレクトリ」の説明

ビルド・ディレクトリには、ビルド・プロセスで生成されたファイルのみが格納されます。ソース・ディレクトリとビルド・ディレクトリのファイルを組み合わせることにより、デプロイ可能なJava EEアプリケーションになります。

ビルド・ディレクトリとソース・ディレクトリの内容は、任意に選択したディレクトリに配置できます。ただし、使いやすいように、それらのディレクトリは1つのプロジェクト・ディレクトリの中のsourceおよびbuildというディレクトリに配置されます(たとえば、\myproject\buildおよび\myproject\source)。

分割開発ディレクトリからのデプロイメント

すべてのWebLogic Serverデプロイメント・ツール(weblogic.DeployerwldeployおよびWebLogic Server管理コンソール)は、分割開発ディレクトリからの直接のデプロイメントをサポートしています。WebLogic Serverにアプリケーションをデプロイする場合は、ビルド・ディレクトリのみ指定します。

WebLogic Serverは、アプリケーションのデプロイメントでソース・ディレクトリ内のすべてのクラスとリソースを使用しようとします。必要なリソースがソース・ディレクトリにない場合、WebLogic Serverはアプリケーションのビルド・ディレクトリでそのリソースを探します。たとえば、編集可能なファイルとしてソース・コードと一緒に格納されているのではなく、ビルド・プロセスの過程でデプロイメント記述子が生成された場合、WebLogic Serverはその生成ファイルをビルド・ディレクトリから取得します。

WebLogic Serverは、アプリケーションのビルド・ディレクトリの最上位の位置にある.beabuild.txtファイルを調べてソース・ディレクトリの位置を確認します。ソース・ディレクトリを移動した場合は、.beabuild.txtファイルを編集して新しいソース・ディレクトリ名を指定してください。

「wldeployを使用したアプリケーションのデプロイメント」では、分割ディレクトリ環境からのデプロイメントを自動化するために使用できるwldeploy Antタスクが説明されています。

図4-2では、一般的なデプロイメント・プロセスを示します。このプロセスは、WebLogic Serverのツールでビルド・ディレクトリを指定することから始まります。この図で、コンパイルされたクラスと生成されたデプロイメント記述子はすべてビルド・ディレクトリにありますが、他のアプリケーション・リソース(静的ファイルや編集可能なデプロイメント記述子など)はどこにあるかわかりません。WebLogic Serverは隠された.beabuild.txtファイルを使用して、必要なリソースのあるアプリケーションのソース・ディレクトリを見つけます。

図4-2 分割ディレクトリのデプロイメント

図4-2の説明が続きます
「図4-2 分割ディレクトリのデプロイメント」の説明

分割開発ディレクトリにおけるAntタスク

Oracleでは、分割開発ディレクトリ環境を使用したアプリケーションの開発を支援するAntタスクのコレクションを用意しています。各Antタスクは、ソース・ディレクトリ、ビルド・ディレクトリ、またはその両方を使用して一般的な開発タスクを実行します。

  • wlcompile - このAntタスクは、ソース・ディレクトリの内容をビルド・ディレクトリのサブディレクトリにコンパイルします。wlcompileはJavaクラスをコンパイルするだけでなく、アノテーション付きの.ejbファイルを処理してデプロイメント記述子を作成します(「wlcompileを使用したアプリケーションのコンパイル」を参照)。

  • wlappc - このAntタスクは、appcコンパイラを呼び出し、appcコンパイラはJSPおよびコンテナ固有のEJBクラスを生成してデプロイメントします。「wlappcを使用したモジュールおよびアプリケーションのビルド」を参照してください。

  • wldeploy - このAntタスクは、任意形式のJava EEアプリケーション(展開されたものでもアーカイブされたものでも)をWebLogic Serverにデプロイします。分割開発ディレクトリ環境から直接デプロイするには、アプリケーションのビルド・ディレクトリを指定します。「wldeploy Antタスクのリファレンス」を参照してください。

  • wlpackage - このAntタスクはソース・ディレクトリとビルド・ディレクトリ両方の内容を使用して、デプロイメント用に受け渡すことができるEARファイルまたは展開EARディレクトリを生成します。

分割開発ディレクトリ構造の使用: 主な手順

分割開発ディレクトリ構造では、アプリケーションのより迅速な開発およびデプロイ、ビルド・スクリプトの簡略化、およびソース制御システムとの統合が可能になります。

次の手順では、分割開発ディレクトリ構造を使用してWebLogic Serverアプリケーションをビルドおよびデプロイする方法を示します。

  1. プロジェクトのメインのEARソース・ディレクトリを作成します。分割開発ディレクトリ環境を使用する場合は、複数のJava EEモジュールを開発しない場合でも、WebアプリケーションとEJBをエンタープライズ・アプリケーションの一部として開発する必要があります。「分割開発ディレクトリでのJava EEコンポーネントの配置」を参照してください。
  2. Webアプリケーション、EJBコンポーネントまたは共有ユーティリティ・クラスのソースを格納するための、1つまたは複数のサブディレクトリをEARディレクトリに追加します。「分割開発ディレクトリでのJava EEコンポーネントの配置」および「分割開発ディレクトリでの共有クラスの配置」を参照してください。
  3. モジュールのすべての編集可能なファイル(ソース・コード、静的コンテンツ、編集可能なデプロイメント記述子)をEARディレクトリのサブディレクトリに格納します。必要に応じて、ソース・ディレクトリの全内容をソース制御システムに追加します。
  4. setWLSEnv.cmd (Windows)またはsetwlsenv.sh (UNIX)スクリプトを実行してWebLogic Server環境を設定します。それらのスクリプトは、WL_HOME\server\bin\ディレクトリにあります。WL_HOMEは、WebLogic Serverのインストール先の最上位ディレクトリです。

    注意:

    UNIXオペレーティング・システムでは、setWLSEnv.shコマンドはすべてのコマンド・シェルで環境変数を設定しません。Kornシェルまたはbashシェルを使用してこのコマンドを実行することをお薦めします。

  5. weblogic.BuildXMLGenユーティリティを使用して、プロジェクトで使用するデフォルトのbuild.xmlファイルを生成します。環境の必要に応じて、デフォルトのプロパティ値を編集します。「weblogic.BuildXMLGenを使用した基本的なbuild.xmlファイルの生成」を参照してください。
  6. build.xmlファイル内のデフォルト・ターゲットを使用して、アプリケーションをビルド、デプロイ、およびパッケージ化します。デフォルト・ターゲットのリストについては、「weblogic.BuildXMLGenを使用した基本的なbuild.xmlファイルの生成」を参照してください。

分割開発ディレクトリでのJava EEコンポーネントの配置

分割開発ディレクトリ構造では、各プロジェクトをJava EEエンタープライズ・アプリケーションとしてステージングする必要があります。したがって、分割ディレクトリのAntタスクを有効活用するには、スタンドアロンのWebアプリケーションやEJBでもエンタープライズ・アプリケーションのモジュールとしてステージングすることをお薦めします。このプラクティスを行うことで、後日モジュールを簡単に追加または削除することもできます(アプリケーションがすでにEARとして構成されているため)。

注意:

プロジェクトで複数のEARが必要な場合は、「分割開発ディレクトリを使用した複数EARプロジェクトの開発」も参照してください。

次の項では、分割開発ディレクトリ構造で次のモジュール・タイプをステージングするための基本規約を説明します。

ディレクトリの例は、ORACLE_HOME\wlserver\samples\src\examples\splitdirにインストールされたsplitdirサンプル・アプリケーションから利用します。ORACLE_HOMEはWebLogic Serverのコード・サンプルを構成するディレクトリです。WebLogic Serverサンプル・コードの詳細は、『Oracle WebLogic Serverの理解』のサンプル・アプリケーションおよびサンプル・コードに関する項 を参照してください。

ソース・ディレクトリの概要

次の図は、Webアプリケーション、EJB、共有ユーティリティ・クラスおよびサード・パーティ・ライブラリを持つエンタープライズ・アプリケーションのソース・ディレクトリの内容をまとめたものです。以降の項では、エンタープライズ・ソース・ディレクトリの個々の要素がどのように配置されるのかを詳しく説明します。

図4-3 エンタープライズ・アプリケーションのソース・ディレクトリの概要

図4-3の説明が続きます
「図4-3 エンタープライズ・アプリケーションのソース・ディレクトリの概要」の説明

エンタープライズ・アプリケーションの構成

分割開発ディレクトリ・プロジェクトの最上位ソース・ディレクトリは、エンタープライズ・アプリケーションを表します。次の図は、このディレクトリに必要な最小限のファイルとディレクトリを示しています。

図4-4 エンタープライズ・アプリケーションのソース・ディレクトリ

図4-4の説明が続きます
「図4-4 エンタープライズ・アプリケーションのソース・ディレクトリ」の説明

次の項で説明するように、エンタープライズ・アプリケーション・ディレクトリには、Webアプリケーション、EJB、ユーティリティ・クラス、サード・パーティJARファイルなどを保持する1つまたは複数のサブディレクトリもあります。

Webアプリケーション

Webアプリケーションは、次の図に示されている基本的なソース・ディレクトリ・レイアウトを使用します。

図4-5 Webアプリケーションのソース・ディレクトリとビルド・ディレクトリ

図4-5の説明が続きます
「図4-5 Webアプリケーションのソース・ディレクトリとビルド・ディレクトリ」の説明

Webアプリケーションの主要なディレクトリとファイルは、次のとおりです。

  • helloWebApp\ - Webアプリケーション・モジュールの最上位には、JSPファイルや、アプリケーションで使用されるHTMLファイルやグラフィックなどの静的コンテンツを格納できます。静的ファイルは、Webアプリケーションの任意指定のサブディレクトリに格納することもできます(helloWebApp\graphicshelloWebApp\staticなど。)

  • helloWebApp\WEB-INF\ - Webアプリケーションの編集可能なデプロイメント記述子のファイル(web.xmlおよびweblogic.xml)をWEB-INFサブディレクトリに格納します。

  • helloWebApp\WEB-INF\src - サーブレットのJavaソース・ファイルはWEB-INF\srcの下のパッケージ・サブディレクトリに格納します。

Webアプリケーションをビルドする際に、appc AntタスクとjspcコンパイラはJSPをビルド・ディレクトリのhelloWebApp\WEB-INF\classes\jsp_servletの下のパッケージ・サブディレクトリにコンパイルします。そのビルド・プロセスで、編集可能なデプロイメント記述子はコピーされません。

EJB

EJBは、次の図に示されているソース・ディレクトリ・レイアウトを使用します。

図4-6 EJBのソース・ディレクトリとビルド・ディレクトリ

図4-6の説明が続きます
「図4-6 EJBのソース・ディレクトリとビルド・ディレクトリ」の説明

EJBの主要なディレクトリとファイルは、以下のとおりです。

  • helloEJB\ - EJBのソース・ファイルはすべて、EJBモジュール・ディレクトリのパッケージ・ディレクトリに格納します。ソース・ファイルは、.javaソース・ファイルかアノテーション付きの.ejbファイルのいずれかです。

  • helloEJB\META-INF\ - 編集可能なEJBデプロイメント記述子(ejb-jar.xmlおよびweblogic-ejb-jar.xml)はEJBモジュール・ディレクトリのMETA-INFサブディレクトリに格納します。helloWorldEarサンプルにはhelloEJB\META-INFサブディレクトリが含まれていません。その理由は、デプロイメント記述子ファイルが.ejbソース・ファイルのアノテーションから生成されているためです。「EJBの記述子に関する重要な注意事項」を参照してください。

ビルド・プロセスの過程で、EJBクラスはビルド・ディレクトリのhelloEJBモジュールのパッケージ・サブディレクトリにコンパイルされます。また、アノテーション付きの.ejbソース・ファイルを使用する場合は、ビルド・プロセスでEJBデプロイメント記述子が生成されて、ビルド・ディレクトリのhelloEJB\META-INFサブディレクトリに格納されます。

EJBの記述子に関する重要な注意事項

EJBデプロイメント記述子はソースMETA-INFディレクトリに含まれ、それらの記述子ファイルがゼロから作成されるか手動で編集される場合のみソース・コードとして取り扱われる必要があります。アノテーション付きの.ejbファイルから生成された記述子ファイルはビルド・ディレクトリにのみ配置され、それらのファイルはアプリケーションをビルドすることで削除および再生成できます。

ある特定のEJBコンポーネントについて、EJBのソース・ディレクトリは次のいずれかを含む必要があります:

  • META-INFに、.javaソース・ファイルのEJBソース・コードと編集可能なデプロイメント記述子

または:

  • META-INF.に、記述子のアノテーションが.ejbソース・ファイルにあるEJBソース・コードと編集できない記述子

つまり、アノテーション付きの.ejbソース・ファイルと編集可能な記述子ファイルを同じEJBコンポーネントで提供してはならないということです。

分割開発ディレクトリでの共有クラスの配置

WebLogic分割開発ディレクトリは、エンタープライズ・アプリケーションのモジュールで必要とされる共有ユーティリティ・クラスとライブラリの格納にも役立ちます。

次の項では、共有ユーティリティ・クラスとサード・パーティJARファイルのディレクトリ・レイアウトとクラスローディング動作について説明します。

共有ユーティリティ・クラス

エンタープライズ・アプリケーションは、アプリケーション・モジュール間で共有されるJavaユーティリティ・クラスを頻繁に使用します。Javaユーティリティ・クラスがサード・パーティのJARと異なる点は、ソース・ファイルがアプリケーションの一部であり、コンパイルを必要とすることです。Javaユーティリティ・クラスは一般的に、EJBまたはWebアプリケーションなどのアプリケーション・モジュールで使用されるライブラリです。

図4-7 Javaユーティリティ・クラスのディレクトリ

図4-7の説明が続きます
「図4-7 Javaユーティリティ・クラスのディレクトリ」の説明

Javaユーティリティ・クラスのソースは、エンタープライズ・アプリケーションの最上位ディレクトリの指定したサブディレクトリに配置します。その指定のサブディレクトリの下では、標準のパッケージ・サブディレクトリ規約を使用します。

ビルド・プロセスの過程で、wlcompile Antタスクはjavacコンパイラを呼び出し、Javaクラスをビルド・ディレクトリの下のAPP-INF/classes/ディレクトリにコンパイルします。その結果、デプロイされているアプリケーションの他のモジュールからそれらのクラスが利用可能になります。

サード・パーティ・ライブラリ

エンタープライズ・アプリケーションを拡張してサード・パーティの.jarファイルを使用するには、それらのファイルを次のようにAPP-INF\lib\ディレクトリに配置します。

図4-8 サード・パーティ・ライブラリのディレクトリ

図4-8の説明が続きます
「図4-8 サード・パーティ・ライブラリのディレクトリ」の説明

サード・パーティJARは通常はコンパイルされませんが、アプリケーション・コードのソース制御システムを使用してバージョニングできます。たとえば、XMLパーサー、ロギング実装、およびWebアプリケーション・フレームワークのJARファイルは一般的にアプリケーションで使用され、編集可能なソース・コードと一緒に保持されます。

ビルド・プロセスの過程で、サード・パーティJARファイルはビルド・ディレクトリにコピーされませんが、デプロイメントのソース・ディレクトリに残ります。

共有クラスのクラス・ローディング

APP-INF/classesAPP-INF/libに格納されたクラスとライブラリは、エンタープライズ・アプリケーションのすべてのモジュールからアクセスできます。アプリケーションのクラスローダーは常に、まず初めにAPP-INF/classes、次にAPP-INF/libを調べることでクラスのリクエストの解決を試みます。

weblogic.BuildXMLGenを使用した基本的なbuild.xmlファイルの生成

ソース・ディレクトリ構造をセット・アップした後は、weblogic.BuildXMLGenユーティリティを使用して基本のbuild.xmlファイルを作成します。weblogic.BuildXMLGenは、分割開発ディレクトリ構造に配置されたエンタープライズ・アプリケーションのためのAnt build.xmlファイルを生成する便利なユーティリティです。このユーティリティは、ソース・ディレクトリを解析して、エンタープライズ・アプリケーションならびに個々のモジュールのビルドおよびデプロイ・ターゲットを作成します。また、ビルドをクリーン・アップして新しいデプロイメント記述子を生成するためのターゲットを生成します。

また、オプション・パッケージは、weblogic.BuildXMLGenでJava EE共有ライブラリとしてサポートされます。そのため、オプション・パッケージ参照の検索では、アプリケーションおよびそのモジュールのすべてのマニフェストがスキャンされます。オプション・パッケージ参照が見つかると、生成されたbuild.xmlファイル内のcompileおよびappcタスクに追加されます。

たとえば、lib\echolib.jarに配置されているライブラリをオプション・パッケージとして参照する場合、weblogic.BuildXMLGenによって生成されるタスクには次のようなappcタスクが含まれます。

<target name="appc" description="Runs weblogic.appc on your application">
  <wlappc source="${dest.dir}" verbose="${verbose}">
    <library file="lib\echolib\echolib.jar" />
  </wlappc>
</target>

モジュールのcompileおよびappcタスクでも、lib\echolib\echolib.jarライブラリが使用されます。

weblogic.BuildXMLGen構文

weblogic.BuildXMLGenの構文は次のとおりです。

java weblogic.BuildXMLGen [options] <source directory>

optionsには次があります。

  • -help: 標準の使用方法メッセージを出力します。

  • -version: バージョン情報を出力します。

  • -projectName <project name>: Antプロジェクトの名前。

  • -d <directory>: build.xmlが作成されるディレクトリ。デフォルトはカレント・ディレクトリ。

  • -file <build.xml>: 生成されたビルド・ファイル名。

  • -librarydir <directories>: ディレクトリのカンマ区切りのリストで、共有Java EEライブラリのビルド・ターゲットを作成します。共有Java EEライブラリおよびオプション・パッケージの作成を参照してください。

  • -username <username>: デプロイ・コマンドのためのユーザー名。

  • -password <password>: ユーザー・パスワード。

weblogic.BuildXMLGenを実行した後は、生成されたbuild.xmlファイルを編集して開発環境のプロパティを指定します。編集する必要のあるプロパティについては、次の例を参照してください。

例4-1 build.xmlの編集可能なプロパティ

<!-- BUILD PROPERTIES ADJUST THESE FOR YOUR ENVIRONMENT -->
  <property name="tmp.dir" value="/tmp" />
  <property name="dist.dir" value="${tmp.dir}/dist"/>
  <property name="app.name" value="helloWorldEar" />
  <property name="ear" value="${dist.dir}/${app.name}.ear"/>
  <property name="ear.exploded" value="${dist.dir}/${app.name}_exploded"/>
  <property name="verbose" value="true" />
  <property name="user" value="USERNAME" />
  <property name="password" value="PASSWORD" />
  <property name="servername" value="myserver" />
  <property name="adminurl" value="iiop://localhost:7001" />

特に、必ずtmp.dirプロパティを編集して使用するビルド・ディレクトリを示します。デフォルトでは、このbuild.xmlファイルは、アプリケーションの名前にちなんで名付けられたサブディレクトリtmp.dir (上の例では/tmp/helloWorldEar)にプロジェクトをビルドします。

次の例は、build.xmlファイルに作成されたデフォルトの主要なターゲットを示しています。これらのターゲットは、EARソース・ディレクトリでant -projecthelpコマンドを入力することでコマンド・プロンプトで表示できます。

例4-2 デフォルトのbuild.xmlのターゲット

appc                 Runs weblogic.appc on your application
build                Compiles helloWorldEar application and runs appc
clean                Deletes the build and distribution directories
compile              Only compiles helloWorldEar application, no appc
compile.appStartup   Compiles just the appStartup module of the application
compile.appUtils     Compiles just the appUtils module of the application
compile.build.orig   Compiles just the build.orig module of the application
compile.helloEJB     Compiles just the helloEJB module of the application
compile.helloWebApp  Compiles just the helloWebApp module of the application
compile.javadoc      Compiles just the javadoc module of the application
deploy                 Deploys (and redeploys) the entire helloWorldEar application
descriptors          Generates application and module descriptors
ear                  Package a standard J2EE EAR for distribution
ear.exploded         Package a standard exploded J2EE EAR
redeploy.appStartup  Redeploys just the appStartup module of the application
redeploy.appUtils    Redeploys just the appUtils module of the application
redeploy.build.orig  Redeploys just the build.orig module of the application
redeploy.helloEJB    Redeploys just the helloEJB module of the application
redeploy.helloWebApp Redeploys just the helloWebApp module of application
redeploy.javadoc     Redeploys just the javadoc module of the application
undeploy               Undeploys the entire helloWorldEar application

分割開発ディレクトリを使用した複数EARプロジェクトの開発

複数のエンタープライズ・アプリケーションを同時にビルドする必要があるプロジェクトでは、複数のEARで共有されるライブラリとクラスの構成、および複数のbuild.xmlファイルのリンクとは規約と手順が少し異なります。

これまでに説明した分割開発ディレクトリの例と手順は、1つのエンタープライズ・アプリケーションで構成されたプロジェクトを対象としています。複数のエンタープライズ・アプリケーションを同時にビルドする必要があるプロジェクトでは、以降の項で説明するように規約と手順が少し異なります。

注意:

次の項では、MedRecサンプル・アプリケーションを参照します。このサンプル・アプリケーションは、共有ユーティリティ・クラス、サード・パーティJARファイル、および専用クライアント・アプリケーションの3つの異なるエンタープライズ・アプリケーションで構成されています。MedRecソースおよびビルド・ディレクトリは、ORACLE_HOME/user_projects/domain/medrecの下にインストールされています。ORACLE_HOMEは、Oracle WebLogic ServerをインストールしたときにOracleホームとして指定したディレクトリです。WebLogic Serverのサンプルの詳細は、『Oracle WebLogic Serverの理解』のサンプル・アプリケーションおよびサンプル・コードに関する項を参照してください。

複数のEARで共有されるライブラリとクラスの配置

EARが1つのプロジェクトでは、分割開発ディレクトリの規約はサード・パーティJARファイルをEARソース・ディレクトリのAPP-INF/libディレクトリに維持するよう促します。ただし、EARが複数のプロジェクトでは、同じサード・パーティJARファイルのコピーをEARソース・ディレクトリのAPP-INF/libディレクトリに保持する必要があります。この場合、ソースJARファイルの複数のコピーが導入され、一部のJARファイルが異なるバージョンである可能性が大きくなり、ソース制御システムに追加のスペースが必要となります。

これらの問題を解決するには、構築スクリプトを編集して、ライブラリを必要とする各EARのビルド・ディレクトリのAPP-INF/libディレクトリにサード・パーティJARファイルをコピーするようにしてみてください。こうすれば、ソース制御システムでJARファイルの1つのコピーとバージョンを維持できるだけでなく、プロジェクトの各EARでJARファイルを使用することができます。

WebLogic Serverと一緒にインストールされるMedRecサンプル・アプリケーションでは、次の図に示されているようにこの戦略を使用します。

図4-9 MedRecの共有JARファイル

図4-9の説明が続きます
「図4-9 MedRecの共有JARファイル」の説明

MedRecは、プロジェクトの複数のEARで共有されるユーティリティ・クラスでも同様のアプローチをとります。ユーティリティ・クラスのソースをそれらを必要とする各earのスコープの中に置くのではなく、MedRecはユーティリティ・クラスのソースをすべてのEARから独立して維持します。ユーティリティ・クラスをコンパイルした後、構築スクリプトはそれらをアーカイブし、ビルド・ディレクトリのそれらのクラスを使用する各EARのAPP-INF/LIBサブディレクトリにJARをコピーします(図4-9を参照)。

複数のbuild.xmlファイルのリンク

分割開発ディレクトリを使用して複数のEARを開発する場合、各EARプロジェクトは通常それ専用のbuild.xmlファイル(おそらくweblogic.BuildXMLGenの複数回の実行で生成される)を使用します。MedRecのようなアプリケーションでは、アプリケーション・スイートの各EARの下級のbuild.xmlファイルを呼び出すマスターbuild.xmlファイルも使用します。

Antは、マスターbuild.xmlファイル内の他のプロジェクト・ビルド・ファイルを実行できるようにするコア・タスク(antという名前)を提供します。MedRecのマスター・ビルド・ファイルから抜粋した次の行は、その使用方法を示しています。

<ant inheritAll="false" dir="${root}/startupEar" antfile="build.xml"/>

上のタスクは、/startupEarサブディレクトリのbuild.xmlというファイルを実行するようにAntに指示しています。inheritAllパラメータは、マスター・ビルド・ファイルのユーザー・プロパティのみを/startupEarbuild.xmlファイルに渡すようにAntに指示しています。

MedRecでは、共通のユーティリティ・クラスやクライアント・アプリケーションをビルドするだけでなく、上のタスクに似た複数のタスクを使用してstartupEarmedrecEar、およびphysicianEarアプリケーションをビルドします。

WebLogic Serverアプリケーション開発のベスト・プラクティス

WebLogic Serverドキュメント・ライブラリには、パッケージ化、配布、デプロイメントといったトピックなど、推奨されるアプリケーション開発に関するベスト・プラクティスが多数含まれています。

アプリケーション開発には、以下の「ベスト・プラクティス」をお薦めします。

  • エンタープライズ・アプリケーションの一部としてアプリケーションをパッケージ化します。「wlpackageを使用したアプリケーションのパッケージ化」を参照してください。

  • 分割開発ディレクトリ構造を使用します。「分割開発ディレクトリでのJava EEコンポーネントの配置」を参照してください。

  • 配布する場合は、アーカイブ形式でパッケージ化とデプロイを行います。「wlpackageを使用したアプリケーションのパッケージ化」を参照してください。

  • 他のほとんどの場合は、展開形式でデプロイするほうが便利です。「アーカイブと展開されたアーカイブ・ディレクトリ」を参照してください。

  • テストされていないコードを、製品アプリケーションのサーバーとなるWebLogic Serverインスタンスにデプロイしないでください。未テスト・コードに対しては、編集およびコンパイルに使用しているのと同じコンピュータに開発用WebLogic Serverインスタンスを設定するか、ネットワーク上の別の場所にWebLogic Serverの開発場所を指定してください。

  • 開発用コンピュータで開発用WebLogic Serverインスタンスを実行しない場合でも、プログラムをコンパイルするにはWebLogic Server配布キットへのアクセスが必要です。WebLogicまたはJava EE APIを使用してコードをコンパイルするには、Javaコンパイラが配布ディレクトリ内のweblogic.jarファイルとその他のJARファイルにアクセスする必要があります。WebLogic配布キットのファイルをローカルで使用するには、WebLogic Serverを開発用コンピュータにインストールします。