JDeveloperは、デプロイメント・プロファイルを作成する機能をサポートしています。これは、デプロイするための様々な種類のJavaアーカイブ・ファイルを、ビルドおよびパッケージするために必要なすべての詳細をカプセル化する機能です。 JDeveloperでは、ビルドおよびパッケージングのツールである Apache Antもサポートしています。 ADF ToyStoreサンプル・アプリケーションには、これらの2つのアプローチの例が含まれています。 この項では、ADF ToyStoreサンプル・アプリケーションで使用されているデプロイメント・プロファイルおよびAntビルド・ファイルについて説明します。
図62に示した
ADFToyStore.deployは、ToyStoreViewControllerプロジェクトのWARデプロイメント・プロファイルで、他のいくつかのデプロイメント・プロファイルに依存していることを表しています。 これは、他のデプロイメント・プロファイルで生成されたJARファイルを一緒にパッケージしてWARファイルとEARファイルを生成し、Oracle Application Server、またはその他のアプリケーション・サーバー(ADFベースのアプリケーション実行のためにADF Runtime Installerを使用した構成が必要) に対してデプロイできます。
ToyStoreModelプロジェクトには、
ToyStoreModel.bcdeployというADFビジネス・コンポーネント用デプロイメント・プロファイルが含まれています。 これは、アプリケーション・ナビゲータで
ToyStoreServiceアプリケーション・モジュールを選択し、マウスを右クリックして
「ビジネス・コンポーネントのデプロイメント...」を選択することによって作成されました。 表示されるウィザードでは
「シンプル・アーカイブ・ファイル」オプションを選択しました。 ナビゲータのノードを展開すると、デプロイメント・プロファイルに、次のような2つの子プロファイルが含まれていることがわかります。これらの子プロファイルには、コンパイル済みのファイル構造のパッケージング定義が次のように設定されています 。
*.commonサブパッケージから
ToyStoreModelCSCommon.jarファイルへパッケージングされます。
*Impl.java)とXMLの定義ファイルのパッケージング。これらのファイルは
ToyStoreModelCSMT.jarファイルへパッケージングされます。
このサンプル・アプリケーションのように、StrutsのWebコントローラ層が、Webコンテナ内にシンプルなJavaBeansとしてADFのモデル層を使用しているケースでは、これらの2つのJARファイルは、両方ともWebコンテナのクラスパスに配置する必要があります。 リモートの中間層にアクセスするSwingアプリケーション、またはEJB Session Beanとしてデプロイされているアプリケーション・モジュールにアクセスするWeb層では、クライアント層では
ToyStoreModelCSCommon.jarのみが必要です。 このようなシナリオでは、
ToyStoreModelCSMT.jarは、EJB Session Beanのクラス・パスに含める必要があります。
表4は、ADF ToyStoreサンプル・アプリケーションで使用しているすべてのデプロイメント・プロファイルです。
| プロジェクト名 | デプロイメント・プロファイル | 生成されるアーカイブ・ファイル |
|---|---|---|
ToyStoreViewController.jpr
|
ADFToyStore.deploy
|
|
ToyStoreModel.jpr
|
ToyStoreModel.bcdeploy
|
|
ToyStoreViewController.jpr
|
ViewController.deploy
|
|
FwkExtensions.jpr
|
FwkExtensions.deploy
|
|
表5は、Struts/ADFのサポートに必要な、その他のサポート用のJARファイルを表しています。
| JARファイル | 説明 |
|---|---|
|
ADF/Strutsのサポート、およびADFタグ・ライブラリの実装 |
|
Strutsフレームワークのランタイム・ライブラリ |
|
Oracle XSQL Servletのランタイム |
ADFToyStore.deployデプロイメント・プロファイルを使用すると、最初に次の2つの事前手順を実行した後は、デプロイ/再デプロイを1つの手順で実行できます。
この項では、アプリケーションをデプロイするための基本事項について取り上げます。
| 注意 |
Oracle Application Server 10g(9.0.4)サーバーは、BC4Jフレームワーク(ADF以前のバージョン)が事前インストールされています。 JDeveloper 10g(バージョン9.0.5)を使用して作成されたアプリケーションを実行するには、ADF Runtime Installerを使用して、ADFフレームワーク・バージョンをサーバーにインストールする必要があります。 |
JDeveloper 10gを使用して作成したADFアプリケーションを、次のいずれかのサーバーにデプロイする場合は、自動のフレームワーク・インストール機能が提供されます。
これらのいずれかのサーバーにADFフレームワークをインストールするには、 「ツール→ADF Runtime Installer→<YourServerType>」を選択します。 ウィザードで、サーバーをインストールするためのルート・ディレクトリを指定するよう要求されます。 ルート・ディレクトリを指定すると、ユーザーが次の手順の処理を確認した後で、サーバーが構成されます。 ウィザードでは、ファイル・コピー、および構成ファイルに対して行なわれた修正のすべてを詳細に記述するログ・ファイルを生成します(発生したすべてのエラーについてもレポートされます)。また、参照できるように、エディタ・ウィンドウにログ・ファイルをオープンします。
ADF ToyStoreサンプル・アプリケーションを、事前に定義されているアプリケーション・サーバー接続にデプロイするには、アプリケーション・ナビゲータで
ADFToyStore.deployノードをクリックし、マウスを右クリックしてメニューで
「配布先→<YourServerName>」を選択します。
Oracle Application Server またはスタンドアロンOC4J以外のサーバーで実行する場合は、ToyStoreサンプル・アプリケーションで使用される2つのデータソースに対応するJDBCのデータソース・マッピングを手動で設定する必要があります。 付録2に、Tomcatサーバーに対する設定例を記載します。
| 注意 |
ADFベースのアプリケーションを、JDeveloper 10gがIDEでサポートしていないJ2EEアプリケーション・サーバーにデプロイする場合のために、手動で手順を実行するためのドキュメントが OTN JDeveloper HowTo Page に用意されています。 これらのドキュメントには、アプリケーション・サーバーにインストールするために必要な、ベースのADFフレームワーク・ライブラリのリストが記載されています。 将来的には、 JSR-88でJ2EE準拠のサーバー間におけるデプロイが標準化され、JDeveloperがそれをサポートすることによって、この状況はかなり簡潔になるでしょう。 |
Apache Antは、Javaビルド・ツールのデファクト・スタンダードです。 ADF ToyStoreサンプル・アプリケーションにはAntの標準の
build.xmlファイルが付随しており、ユーザーはこれを使用して、コマンドラインからサンプル・アプリケーションを構築することができます。
表6は、Antが構築するすべてのターゲット、およびそのターゲットで行なう処理の概要を示しています。
| ビルド・ターゲット名 | 説明 |
|---|---|
all
|
ADFToyStore.earファイルを構築してアセンブルする(デフォルト)
|
clean
|
./build および ./deployディレクトリをクリーンアップする |
allclean
|
ADFToyStore.earファイルをクリーンアップし、構築およびアセンブルする
|
init
|
./build および ./deployディレクトリを作成する |
fwk-extensions
|
フレームワークの拡張クラスを構築して、
ToyStoreFwkExtensions.jarを生成する
|
model-layer
|
モデル層を構築し、
ToyStoreModelCSCommon.jarおよび
ToyStoreModelCSMT.jarを生成する
|
view-controller
|
ビューおよびコントローラ層を構築し、
ToyStoreViewController.jarを生成する
|
war
|
ADFToyStore.warファイルをアセンブルする
|
ear
|
ADFToyStore.earファイルをアセンブルする
|
deploy
|
ADFToyStore.earファイルをスタンドアロンOC4Jへデプロイする
|
deployclean
|
ADFToyStore.earファイルをクリーンにする
|
JDeveloperはAntもサポートしているため、 図63で示しているように、アプリケーション・ナビゲータでマウスを右クリックして、Antビルド・ターゲットを構築することができます。
ADFToyStore.earファイルを構築するには、
earビルド・ターゲットを選択します。
ADFToyStore.warファイルを構築するには、
warビルド・ターゲットを選択します。
JDeveloperからAntを使用している場合は、
jdev.homeパラメータに、JDeveloperのホーム・ディレクトリが設定されます。 このようにして、Antのビルド・スクリプトからJDeveloperのインストレーション・ホームに関連するファイルへの参照を作成できます。 ADF ToyStoreの
build.xmlファイルは、この処理を行います。 したがって、JDeveloperの外部のコマンドラインから、次のようなビルド・ターゲットを実行しようとすると
$ ant ear
次のような警告メッセージが表示されます。
Buildfile: build.xml
init:
BUILD FAILED
C:\adftoystore\build.xml:52: Need to set jdev.home property to JDev home dir!
したがって、このように処理するかわりに、
antコマンドラインでjdev.homeの値を渡して構築する必要があります。
$ ant -Djdev.home=C:\Oracle\jdev905 ear
ここで、
C:\Oracle\jdev905はJDeveloperのインストレーション・ホーム・ディレクトリで置き換える場所の例です。
このビルドファイルには、
deployと
deploycleanというAntビルド・ターゲットを設定しました。これらのターゲットは、ビルド・スクリプトからスタンドアロンOC4Jのインストールを実行します。 ユーザーは、Antからのデプロイ処理を実現するために、build.xmlの次のようなセクションでプロパティを編集し、自身の環境にとって適切な値を指定する場合があります。
<!--
| Local OC4J Connection Information for "deploy" task
+-->
<property name="oc4j.admin.jar" value="${jdev.home}/j2ee/home/admin.jar"/>
<property name="oc4j.url" value="ormi://localhost/"/>
<property name="oc4j.username" value="admin"/>
<property name="oc4j.password" value="welcome"/>
<property name="j2ee.app.name" value="ADFToyStore"/>
<property name="j2ee.web.app.name" value="ADFToyStore"/>
<property name="oc4j.web.site" value="http-web-site"/>
<property name="j2ee.context.root" value="/ADFToyStore"/>
これらのパラメータは、コマンドラインのデプロイ用ユーティリティ
admin.jarへ渡される引数として、
deploy タスクで使用されます。