ナビゲーションをスキップ

WebLogic Server アプリケーションの開発

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic Server アプリケーションの作成

以下の節では、WebLogic 分割開発ディレクトリ環境を使用して WebLogic Server J2EE アプリケーションを作成する手順を説明します。

 


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

WebLogic 分割開発ディレクトリ環境は、ディレクトリ レイアウトと、J2EE アプリケーションの反復的なビルド、変更、およびデプロイメントを支援する関連 Ant タスクで構成されます。他の開発フレームワークと比較して、WebLogic 分割開発ディレクトリには以下のメリットがあります。

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

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

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

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

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

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


 

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

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

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

すべての WebLogic Server デプロイメント ツール (weblogic.Deployerwldeploy、および Administration Console) は、分割開発ディレクトリからのダイレクトのデプロイメントをサポートしています。WebLogic Server にアプリケーションをデプロイするときには、ビルド ディレクトリのみ指定します。

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

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

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

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

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

分割ディレクトリのデプロイメント


 

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

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

 


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

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

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

 


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

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

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

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

注意 : WebLogic Server では、分割開発ディレクトリを使用した J2EE コネクタの開発をサポートしていません。

ディレクトリの例は、WL_HOME\samples\server\examples\src\examples\splitdir にインストールされた splitdir サンプル アプリケーションから利用します。WL_HOME は WebLogic Server のインストール ディレクトリです。

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

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

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

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


 

エンタープライズ アプリケーションのコンフィグレーション

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

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

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


 

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

注意 : ddinit Java ユーティリティまたは wlddcreate Ant タスクを使用して、エンタープライズ アプリケーションの記述子を自動的に生成できます。J2EE モジュールのサブディレクトリを EAR ディレクトリに追加した後に、次のコマンドを実行します。

java weblogic.marathon.ddinit.EarInit \myEAR

ddinit の詳細については、「WebLogic Server Java ユーティリティの使い方」を参照してください。

Web アプリケーション

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

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

アプリケーションのソース ディレクトリとビルド ディレクトリ


 

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

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

EJB

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

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


 

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


 

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

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

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

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

ある特定の EJB コンポーネントについて、EJB のソース ディレクトリでは以下のいずれかを格納しなければなりません。

または

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

 


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

WebLogic 分割開発ディレクトリは、エンタープライズ アプリケーションのモジュールで必要とされる共有ユーティリティ クラスとライブラリの格納にも役立ちます。以降の節では、共有ユーティリティ クラスとサードパーティ JAR ファイルのディレクトリ レイアウトとクラスローディング動作について説明します。

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

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

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


 

Java ユーティリティ クラスのディレクトリ


 

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

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

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

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

図 2-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 weblogic.BuildXMLGen [オプション] <ソース ディレクトリ>

オプションには以下を指定できます。

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

コード リスト 2-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 コマンドを入力することでコマンド プロンプトで表示できます。

コード リスト 2-2 デフォルトの build.xml のターゲット

appc 			アプリケーションで weblogic.appc を実行する
build helloWorldEar アプリケーションをコンパイルし、appc を実行する
clean ビルド ディレクトリと配布ディレクトリを削除する
compile helloWorldEar アプリケーションをコンパイルするだけで、appc は実行しない
compile.appStartup アプリケーションの appStartup モジュールをコンパイルする
compile.appUtils アプリケーションの appUtils モジュールをコンパイルする
compile.build.orig アプリケーションの build.orig モジュールをコンパイルする
compile.helloEJB アプリケーションの helloEJB モジュールをコンパイルする
compile.helloWebApp アプリケーションの helloWebApp モジュールを
コンパイルする
compile.javadoc アプリケーションの javadoc モジュールをコンパイルする
deploy helloWorldEar アプリケーション全体をデプロイする
(および再デプロイする)
descriptors アプリケーションとモジュールの記述子を生成する
ear 標準の J2EE EAR を配布用にパッケージ化する
ear.exploded 標準の展開 J2EE EAR をパッケージ化する
redeploy.appStartup アプリケーションの appStartup モジュールを再デプロイする
redeploy.appUtils アプリケーションの appUtils モジュールを再デプロイする
redeploy.build.orig アプリケーションの build.orig モジュールを
再デプロイする
redeploy.helloEJB アプリケーションの helloEJB モジュールを再デプロイする
redeploy.helloWebApp アプリケーションの helloWebApp モジュールを
再デプロイする
redeploy.javadoc アプリケーションの javadoc モジュールを再デプロイする
undeploy helloWorldEar アプリケーション全体をアンデプロイする

 


wlddcreate を使用したデプロイメント記述子の生成

wlddcreate Ant タスクは、アプリケーションおよびアプリケーション モジュールのデプロイメント記述子を生成する方法として提供されています。これは生成された build.xml ファイルの一部として提供される Ant ターゲットです。weblogic.marathon.ddinit コマンドに取って代わるものです。wlddcreate ターゲットの出力は、次のようになります。

<target name="descriptors" depends="compile" description="Generates application

and module descriptors">

<ddcreate dir="${dest.dir}" />

</target>

 


wlcompile を使用したアプリケーションのコンパイル

wlcompile Ant タスクは、javac コンパイラを起動して、アプリケーションの Java コンポーネントを分割開発ディレクトリ構造にコンパイルするために使用します。wlcompile の基本的な構文では、helloWorldEar サンプルからの次のコマンドのようにソース ディレクトリとビルド ディレクトリを識別します。

<wlcompile srcdir="${src.dir}" destdir="${dest.dir}"/>

このタスクを使用すると発生するイベントの順序を次に示します。

  1. wlcompile は、Java コンポーネントを出力ディレクトリにコンパイルします。
  2. WL_HOME\samples\server\examples\build\helloWorldEar\APP-INF\classes\

    WL_HOME は、WebLogic Server のインストール ディレクトリです。

  3. wlcompile は EJB を構築し、以前に構築された Java モジュールを、コンパイラのクラスパスに自動的に含めます。これにより、EJB は手動でクラスパスを編集する必要なしに Java モジュールを呼び出せます。
  4. 最後に、wlcompile は Web アプリケーション内の Java コンポーネントを、コンパイラのクラスパスにある EJB および Java モジュールと一緒にコンパイルします。これにより、Web アプリケーションは手動でクラスパスを編集する必要なしに、EJB およびアプリケーション Java クラスを参照できるようになります。

includes および excludes プロパティの使い方

より複雑なエンタープライズ アプリケーションでは、wlcompile タスクで自動的に処理できないコンパイルの依存関係がある場合があります。ただし、wlcompile で include および exclude オプションを使用して独自の依存関係を強制できます。includes および excludes プロパティはエンタープライズ アプリケーション モジュール名 (エンタープライズ アプリケーションのソース ディレクトリ内のサブディレクトリ名) を受けて、これらをコンパイル処理に含めたり除外したりします。

helloWorldEar サンプルからの次の行は、appStartup モジュールがコンパイルから除外されることを示しています。

<wlcompile srcdir="${src.dir}" destdir="${dest.dir}"
   excludes="appStartup"/>

wlcompile Ant タスクのオプション

表 2-1 には、wlcompile に固有の Ant タスク オプションが記載されています。

表 2-1 wlcompile Ant タスクのオプション

オプション

説明

srcdir

ソース ディレクトリ

destdir

ビルド/出力ディレクトリ

classpath

wlcompile で使用されるクラスパスを変更できる

includes

ビルドから特定のディレクトリを含めることができる

excludes

ビルドから特定のディレクトリを除外できる

ネストされた javac オプション

wlcompile Ant タスクは、コンパイル時の動作を変更するネストされた javac オプションを受け入れます。たとえば、次の wlcompile コマンドは非推奨の警告を無視し、デバッグを有効にします。

<wlcompile srcdir="${mysrcdir}" destdir="${mybuilddir}">
   <javac deprecation="false" debug="true"
   debuglevel="lines,vars,source"/>
</wlcompile>

 


wldeploy を使用したアプリケーションのデプロイメント

wldeploy タスクは、分割開発ディレクトリから直接デプロイする簡単な手段を提供します。wlcompile は、weblogic.Deployer ディレクトリとほとんど同じ引数を提供します。分割開発ディレクトリからデプロイするには、次のように、ビルド ディレクトリの位置をデプロイ可能なファイルとして指定するだけです。

<wldeploy user="${user}" password="${password}"
action="deploy" source="${dest.dir}"
name="helloWorldEar" />

上のタスクは、weblogic.BuildXMLGen を使用して build.xml ファイルを作成すると自動的に作成されます。

包括的なコマンドのリファレンスについては、『WebLogic Server アプリケーションのデプロイメント』の「wldeploy Ant タスク」を参照してください。

 


wlpackage を使用したアプリケーションのパッケージ化

wlpackage Ant タスクは、ソース ディレクトリとビルド ディレクトリの両方の内容を使用して、デプロイ可能なアーカイブ ファイル (.EAR ファイル)、またはエンタープライズ アプリケーションを表す展開アーカイブ ディレクトリ (展開 .EAR ディレクトリ) を作成します。 wlpackage は、評価、テスト、パフォーマンスのプロファイリング、またはプロダクション デプロイメントを目的として別のグループまたは個人にアプリケーションを配布する際に使用します。

アーカイブと展開されたアーカイブ ディレクトリ

プロダクションが目的の場合は、エンタープライズ アプリケーションを展開された (アーカイブされていない) ディレクトリ形式でデプロイすると便利です。これは、エンタープライズ アプリケーションの一部としてパッケージ化されたスタンドアロンの Web アプリケーション、EJB、およびコネクタにも当てはまります。この形式を使うことで、アプリケーション全体のアーカイブを展開し、編集し、再アーカイブするのではなく、展開ディレクトリの中でファイルを直接更新できます。展開されたアーカイブ ディレクトリを使うと、『WebLogic Server アプリケーションのデプロイメント』の「展開されたアーカイブ ディレクトリ」で説明するように、他にも利点があります。

アプリケーションを 1 つのアーカイブ ファイルにパッケージ化することもできます。その方法は、モジュールとアプリケーションを配布用にパッケージ化する際に便利です。アーカイブ ファイルは簡単にコピーでき、展開されたディレクトリよりも処理するファイル数が少なく、ファイル圧縮によってディスク スペースも節約できます。

Java クラスローダは、クラスパス内のディレクトリを検索するのと同じように、JAR ファイル内の Java クラス ファイル (および他のファイル タイプ) を検索できます。クラスローダはディレクトリまたは JAR ファイルを検索できるので、JAR (アーカイブ) ファイルまたは展開された (アーカイブされていない) ディレクトリのどちらとしてでも、J2EE モジュールを WebLogic Server にデプロイできます。「アーカイブと展開されたアーカイブ ディレクトリ」を参照してください。

wlpackage Ant タスク

プロダクション環境において、wlpackage Ant タスクは、分割開発ディレクトリ アプリケーションを WebLogic Server にデプロイ可能な従来の EAR ファイルとしてパッケージ化するのに使用します。MedRec サンプルの続きで、アプリケーションのパッケージ化は次のように行えます。

<wlpackage toFile="\physicianEAR\physicianEAR.ear" srcdir="\physicianEAR"
destdir="\build\physicianEAR"/>
<wlpackage toDir="\physicianEAR\explodedphysicianEar" srcdir="\src\physicianEAR"
destdir="\build\physicianEAR"/>

 


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

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

注意 : 以降の節では、MedRec サンプル アプリケーションが参照されています。このサンプル アプリケーションは、共有ユーティリティ クラス、サードパーティ JAR ファイル、および専用クライアント アプリケーションと、3 つの異なるエンタープライズ アプリケーションで構成されています。MedRec のソース ディレクトリとビルド ディレクトリは、WL_HOME/samples/server/medrec にインストールされます。WL_HOME は、WebLogic Server のインストール ディレクトリです。MedRec のディレクトリ レイアウトとビルド プロセスについては、『Avitek Medical Record 開発チュートリアル』も参照してください。

複数の 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 サンプル アプリケーションでは、次の図に示されているようにこの方式を使用します。

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

MedRec の共有 JAR ファイル


 

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

アプリケーション開発には、以下の「ベスト プラクティス」をお勧めします。また、『Avitek Medical Record 開発チュートリアル』で各種の「ベスト プラクティス」に関する節を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次