前回は、デプロイメント記述子の定義について詳しく説明しました。これでアプリケーションを動かす環境に配布するデプロイが可能になりました。今回は作成したアプリケーションをデバッグするために、デバッグ用の実行環境(デバッグ環境)にデプロイする手順について説明します。
デバッグ環境とは
アプリケーションをデプロイする手順を説明する前に、デバッグ環境について確認しておきましょう。連載の第4回でも触れましたが、デバッグ環境には、リクエストを受け付ける「Webサーバ」、アプリケーションを動作させる「J2EEサーバ」、アプリケーションで使用する「データベース」など、アプリケーションが動作するための環境が一通り必要です。
Cosminexusのデバッグ環境は図1に示すように、J2EEサーバ(JavaVMを含む)のほか、トレースを出力するPRFデーモン、運用管理を行う運用管理エージェントとManagement Serverで構成されます。WebサーバはJ2EEサーバの中に含まれているものを使用できるので、別のプロセスを起動する必要はありません。また内蔵データベースも備えているので、データベースをアクセスするプログラムのデバッグも簡単に行うことができます。
リソースアダプタを登録する
さっそくデプロイしたいところですが、その前にデバッグ環境を整備する必要があります。J2EEサーバから外部のリソースであるデータベースやメインフレームに接続するには、「リソースアダプタ」を登録しなければなりません。ここではデータベースをアクセスするためのリソースアダプタについて見て行きましょう。
Javaアプリケーションからデータベースをアクセスするための標準的なインタフェースとして「JDBC(Java Database Connectivity)」があります。JDBCを使用してプログラミングしておけば、接続するデータベースの種類に依存しないプログラムを作成することができます。データベースベンダー側も、JDBCインタフェースを解釈して自社のデータベースを操作するJDBCドライバを提供しています。このとき、Javaアプリケーションが動作するJ2EEサーバとJDBCドライバを接続するのが、データベース接続用のリソースアダプタです。
リソースアダプタを登録するには、リソースアダプタをJ2EEサーバにデプロイして、データベースにアクセスするユーザ名やパスワード、接続ポート番号やホスト名などを設定する必要があります。
なおCosminexusの場合は、デバッグ環境構築時に内蔵データベースと接続するためのリソースアダプタが自動的に登録されるので、この手順は必要ありません。
アプリケーションをデバッグ環境にデプロイする
環境が整ったので、いよいよデプロイを行います。
デバッグする場合は、「展開ディレクトリ形式」でデプロイします。展開ディレクトリ形式とは、アプリケーションを構成するファイル群をアーカイブ化せず、ディレクトリ構造をそのままデプロイする形式です。
Cosminexusでは、展開ディレクトリ形式でデプロイしておくと、ソースファイルを修正するだけでリロードまで行うことができます。ただし、あらかじめ次のように指定をしておく必要があります(どちらもデフォルトでこの設定になっています)。
- MyEclipseの「自動的にビルド」にチェックを入れる:ソースファイルが修正されたら、自動的にコンパイルして実行ファイルを更新する機能
- デバッグ環境のJ2EEサーバで、アプリケーションの更新検知を有効にする:実行ファイルが更新されたら、自動的にリロードする機能
それではデプロイの手順を次に示します。まず、MyEclipseの[パッケージ・エクスプローラー]ビューでデプロイしたいエンタープライズアプリケーションプロジェクトを選択し、右クリックで表示されるコンテキストメニューの[デバッグ(D)]-[MyEclipseサーバー・アプリケーション]をクリックします(図2)。
これでJ2EEサーバがデバッグモードで起動し、展開ディレクトリ形式でアプリケーションがデプロイされて、デバッグできるようになります。図3に示すように、この例では「Bank」アプリケーションがデプロイされています。
J2EEサーバがデバッグモードで起動されると、内蔵データベース接続用のリソースアダプタも自動で開始されるので、すぐにデバッグを始めることができます。
次回はアプリケーションのデバッグについて見て行きましょう。
ココがポイント
今回のポイントとなるのは、以下の用語です。これらの説明ができるようにしておきましょう。
- Cosminexusのデバッグ環境
- リソースアダプタ
- JDBC
- 展開ディレクトリ形式
- Cosminexusでホッと一息 ~Cafe Cosminexus
- URL:http://www.cosminexus.com