![]() |
![]() |
MedRec アプリケーションのビルド
チュートリアル 6 : WebLogic Server の分割ディレクトリ構造について
medrec_tutorial プロジェクト ディレクトリ内のいくつかのサブディレクトリ (medrecEar、physicianEar、startupEar) では、ソース ファイルの格納に WebLogic Server 分割開発ディレクトリ構造が使用されます。分割開発ディレクトリは、エンタープライズ アプリケーション ファイルのビルド、デプロイ、パッケージ化を簡単にし、クラスパスの依存関係を自動的に維持するディレクトリ レイアウトおよび Ant タスク サポートで構成されます。ソース ファイルと編集可能なデプロイメント記述子を含むディレクトリと、コンパイルされたクラス ファイルと生成されたデプロイメント記述子が保存されるディレクトリが異なるため、ディレクトリ構造が分割されています。
分割開発ディレクトリ構造は、独自のアプリケーション開発に使用する重要なツールです。ソース ファイルと生成されたファイルが別々に保存されるため、開発プロジェクトとソース制御システムを簡単に統合できます。分割開発ディレクトリでは、アプリケーションのデプロイも簡単に行えます。最初にファイルをコピーしてアプリケーションをステージングする必要はありません。アプリケーションをデプロイするときに、自動的に build ディレクトリとソース ディレクトリの両方の内容が使用されます。
このチュートリアルでは、MedRec アプリケーション スイートで使用されるソース ディレクトリ構造のレイアウトと機能について説明します。次のチュートリアルでは、wlcompile タスクを使用してエンタープライズ アプリケーションをコンパイルしたときに生成されるビルド ディレクトリ構造について説明します。ソース ディレクトリとビルド ディレクトリは共に、後続のチュートリアルでデプロイおよびパッケージ化する WebLogic 分割開発ディレクトリを構成します。
このチュートリアルは、以下の節で構成されています。
|
前提条件
このチュートリアルを開始する前に、以下のことを行ってください。
|
手順
次の手順にしたがって、MedRec アプリケーション スイートのソース ディレクトリ構造について学習します。
手順 1 : エンタープライズ アプリケーションのディレクトリ構造を調べる
WebLogic 分割開発ディレクトリには、エンタープライズ アプリケーション (EAR) レベル以下のソース ファイルが格納されます。開発している Web アプリケーションまたは EJB が 1 つだけの場合でも、エンタープライズ アプリケーションを表す最上位のディレクトリに関連するコンポーネントを格納します。たとえば、startupEar サブディレクトリの内容を調べてください。MedRec アプリケーション スイートの 1 つの Web アプリケーションのソース コードが格納されています。
cd c:\medrec_tutorial\src\startupEar
dir
Directory of C:\medrec_tutorial\src\startupEar
01/23/2003 08:43a <DIR> .
01/23/2003 08:43a <DIR> ..
01/23/2003 08:43a 3,368 build.xml
01/23/2003 08:41a <DIR> META-INF
01/23/2003 08:24a <DIR> startupWebApp
この Web アプリケーションは、その他の MedRec アプリケーションとは別にパッケージ化する必要があるため、EAR ファイルで表されるアプリケーション自体のソース ディレクトリに置かれます。META-INF サブディレクトリには、エンタープライズ アプリケーション自体のデプロイメント記述子 (application.xml および任意の weblogic-application.xml ファイル) が保持されます。
プロジェクト ディレクトリ内の他のソース サブディレクトリは、Web アプリケーションと EJB の両方を含む、より一般的なエンタープライズ アプリケーション (physicianEar など) を表します。physicianEar サブディレクトリに移動して、その内容を調べます。
cd c:\medrec_tutorial\src\physicianEar
dir
Directory of C:\medrec_tutorial\src\physicianEar
01/23/2003 08:43a <DIR> .
01/23/2003 08:43a <DIR> ..
01/20/2003 05:00p <DIR> APP-INF
01/23/2003 08:43a 5,447 build.xml
01/23/2003 08:41a <DIR> META-INF
01/23/2003 08:41a <DIR> physicianWebApp
01/23/2003 08:24a <DIR> sessionEjbs
01/23/2003 08:24a 218 wlcompile_tutorial.xml
01/23/2003 08:24a 287 wldeploy_tutorial.xml
01/23/2003 08:24a 293 wlpackage_tutorial.xml
01/23/2003 08:24a 393 ws_ejb_client_tutorial.xml
ディレクトリのリストから、Physician アプリケーションには Web アプリケーション コンポーネント (physicianWebApp に格納) と EJB コンポーネント (sessionEjbs に格納) の両方が含まれることがわかります。分割開発ディレクトリ構造では、各 EAR コンポーネントが専用のソース ディレクトリに置かれている必要があります。コンポーネントの種類は、wlcompile Ant タスクによりコンパイル時に自動的に決定されるため、ear ディレクトリとコンポーネント サブディレクトリには自由に名前を付けることができます。
手順 2 : Web アプリケーション コンポーネントのディレクトリ構造を調べる
ソース ディレクトリ構造で、Web アプリケーションを構成するさまざまなファイル タイプを簡単に管理できます。physicianEar ソース ディレクトリ内の physicianWebApp サブディレクトリに移動して、その内容を調べます。
cd physicianWebApp
dir
Directory of C:\medrec_tutorial\src\physicianEar\physicianWebApp
02/17/2003 10:01a <DIR> .
02/17/2003 10:01a <DIR> ..
02/17/2003 09:57a 1,588 Confirmation.jsp
02/17/2003 09:57a 4,538 CreateRx.jsp
02/17/2003 09:57a 9,836 CreateVisit.jsp
02/17/2003 09:57a 2,107 Error.jsp
02/17/2003 09:57a 2,837 Login.jsp
02/17/2003 09:57a 3,770 PatientHeader.jsp
02/17/2003 09:57a 1,940 PhysicianHeader.jsp
02/17/2003 09:57a 2,927 Search.jsp
02/17/2003 09:57a 3,338 SearchResults.jsp
02/17/2003 09:57a 2,840 stylesheet.css
02/17/2003 09:57a 3,549 ViewProfile.jsp
02/17/2003 09:57a 6,443 ViewRecord.jsp
02/17/2003 09:57a 4,846 ViewRecords.jsp
02/17/2003 10:01a <DIR> WEB-INF
Web アプリケーション サブディレクトリの最上位には、アプリケーションを構成する JSP が含まれます。ここに .html ファイルやその他の静的なコンテンツ (画像ファイルなど) も格納できますが、これらのコンテンツは専用のサブディレクトリ (\images など) に格納するほうが、扱いが簡単になります。
サーブレット、ユーティリティ クラス サポートなどの Web アプリケーション コンポーネントの Java ソース ファイルは、コンポーネントの WEB-INF\src サブディレクトリのパッケージ ディレクトリに格納されます。たとえば、Physician Web アプリケーションのユーティリティ クラスは、C:\medrec_tutorial\src\physicianEar\physicianWebApp\WEB-INF\src\com\bea\medrec\utils\PhysConstants.java に格納されます。
wlcompile タスクにより、WEB-INF\src サブディレクトリの内容が自動的にアプリケーションの出力ディレクトリの WEB-INF\classes サブディレクトリにコンパイルされ、Web アプリケーションのすべてのコンポーネントからこれらのクラスにアクセスできるようになります。
WEB-INF サブディレクトリには、Web アプリケーション コンポーネントのデプロイメント記述子 (web.xml および任意の weblogic.xml) も格納されます。
手順 3 : EJB コンポーネントのディレクトリ構造を調べる
EJB コンポーネントの Java ソース ファイルは、EJB のパッケージ構造を反映したサブディレクトリに格納されます。たとえば、Physician アプリケーションのセッション EJB のソースは、C:\medrec_tutorial\src\physicianEar\physSessionEjbs\com\bea\medrec\controller\PhysicianSessionEJB.ejb に格納されます。
EJB コンポーネントのデプロイメント記述子 (ejb-jar.xml および任意の weblogic-ejb-jar.xml など) は、コンポーネントの META-INF サブディレクトリに格納できます。ただし、physSessionEjbs サブディレクトリを見ると、META-INF サブディレクトリがありません。これは、MedRec アプリケーション スイートのすべての EJB が、デプロイメント記述子ファイルで定義せずに JavaDoc コメントで ejbgen タグを使用するためです。wlcompile Ant タスクは、アプリケーションのコンパイル時にそれらのタグを使用して自動的に EJB デプロイメント記述子を生成します。
|
ベスト プラクティス
\myProject
\myProject\myEar
\myProject\myEar\META-INF\application.xml
\myProject\myEar\myEjb\com\*\*.java
\myProject\myEar\myWebApp\*.jsp
\myProject\myEar\myWebApp\WEB-INF\web.xml
\myProject\myEar\myWebApp\WEB-INF\src\com\*\*.java
|
全体像
MedRec アプリケーション スイートでは、3 つの分割開発ディレクトリを使用して、medrecEar、physicianEar、および startupEar の各アプリケーションのソースを保持します。これらのアプリケーション間で共有されるユーティリティ クラスは、分割ディレクトリ構造を使用しないカスタム構築スクリプトと共に、専用の common ディレクトリに格納されます。セキュリティ コンポーネントもカスタム ビルド ディレクトリにステージングされます。
最上位の build.xml ファイルが MedRec ソース ディレクトリを検索し、すべてのコンポーネントのビルドを即座に調整します。
wlcompile タスクによるビルド時に、ほとんどのコンポーネント依存関係が自動的に維持されますが、medrecEar、physicianEar などの特定の分割開発ディレクトリではビルド順序がハードコード化されて依存関係が強制的に設定されます。このチュートリアルで作成したソース ディレクトリ構造には、依存関係を意識せずに新しい WebLogic Server Ant タスクを使用してビルドできる中間手順が含まれます。
|
関連情報
![]() |
![]() |
![]() |