サンのロゴ

 

 
 

Sun[tm] ONE Application Server 7
サンプルアプリケーションの配備と実行
前へ 開始 次へ

 

JDBC[tm] 接続プール、およびアプリケーションに必要なリソースエントリを定義したら、今度はアプリケーションを配備します。

サンプルアプリケーションには、生成済みの EAR ファイルのコピーが含まれますが、Ant の機能とサンプルに含まれる build.xml ファイルを使ってアプリケーションのソースコードをコンパイルし、EAR ファイルを最初から再アセンブルすることもできます。新たに作成したこの EAR ファイルをアプリケーションサーバーに配備し、アプリケーションを実行します。

  1. アプリケーションのコンパイルと再アセンブル
  2. アプリケーションの配備
  3. アプリケーションを監視する準備
  4. アプリケーションの実行

1. アプリケーションのコンパイルと再アセンブル

アプリケーションサーバーをほかのユーザーと共有している場合、またはアプリケーションサーバーがインストールされている領域に対する書き込み権がシステムユーザー ID に割り当てられていない場合は、サンプルアプリケーションを専用ディレクトリにコピーする必要があります。Solaris 9 と同時にインストールされたアプリケーションサーバーを使用する場合は、サンプルアプリケーションの専用コピーを作成しておくことをお勧めします。

アプリケーションサーバーをほかのユーザーと共有しない場合は、アプリケーションのコンパイルと再アセンブルに進んでください。

サンプルアプリケーションの専用コピーの作成

ユーザー ID に書き込み権が割り当てられているディレクトリに次のディレクトリをコピーします。

<install_dir>¥samples

このマニュアルで説明するサンプルアプリケーションに対して Ant の build 機能を使用するときは、次のファイルに記録されている com.sun.aas.installRoot プロパティがアプリケーションサーバーのインストールパスに設定されていることを確認してください。

<personal_samples_dir>/samples/common.properties

Solaris 9 と同時にアプリケーションサーバーをインストールした場合を除き、com.sun.aas.installRoot プロパティはアプリケーションサーバーのインストール時に自動的に設定されます。Solaris 9 環境の /usr/appserver/samples からサンプルアプリケーションをコピーする場合は、common.properties ファイルの内容を次のように変更します。

com.sun.aas.installRoot=/usr/appserver

このプロパティの変更は、このマニュアルで説明するレベルでの Ant の使用には適していますが、サンプルアプリケーションに対して Ant の機能を十分に活用するには、common.properties ファイルの別のプロパティにも変更が必要です。このマニュアルで説明するすべての練習が終わったら、サンプルアプリケーションのマニュアルの「Using Ant with the Samples」の節を参照し、common.properties ファイルのその他のプロパティについて詳細を確認してください。

このマニュアルで <install_dir>/samples/ と表記されるディレクトリは、サンプルアプリケーションの専用コピーが保存されているディレクトリに置き換えて解釈する必要があります。

アプリケーションのコンパイルと再アセンブル

1. 現在の環境にアプリケーションサーバーの bin/ ディレクトリがあることを確認します。

確認の手順については、「環境設定」を参照してください。

2. コマンド行を使って、サンプルアプリケーション jdbc-simple のソースディレクトリに移動します。

    cd <install_dir>/samples/jdbc/simple/src

3. コマンド行で、引数を指定せずに Ant のラッパースクリプト asant(.bat) を実行し、Java ソースファイルをコンパイルして、J2EE[tm] WAR、EJB JAR、EAR の各ファイルをアセンブルします。

    asant

情報アイコンasantとは : asant ユーティリティは、Apache Ant メインクラスを呼び出すラッパースクリプトに過ぎません。ラッパースクリプトは、まずアプリケーションサーバー環境に関連する適切なクラスパスを設定します。たとえば、適切な JDK、およびアプリケーションサーバーに含まれるカスタム Ant タスクを記録した JAR ファイルが環境に設定されます。独自にコピーした Ant を使用するときは、専用の Ant 環境に同じクラスパスが設定されているかどうか、asant(bat) ファイルの内容を確認します。


情報アイコンasant の機能 : make コマンドがローカルの Makefile を自動的に処理するのと同様に、asant ユーティリティを実行すると、実行したディレクトリから build.xml というファイルが自動的に検出されます。また、make と同様に Ant もデフォルトターゲットという概念を使用しています。 アプリケーションサーバーに含まれるサンプルアプリケーションについて言えば、core というデフォルトターゲットによってサンプルアプリケーションが完全に再ビルドされます。これ以外に一般的なターゲットには compiledeploy があります。詳細については、サンプルアプリケーションのマニュアルを参照してください。

4. 次のディレクトリで jdbc-simple.ear というファイルを検索し、EAR ファイルが作成されたことを確認します。

    cd ../assemble/ear

作成された jdbc-simple.ear ファイルはこのディレクトリに保存されます。

これでアプリケーションのコンパイルとアセンブルが完了しました。次に、管理コンソールを使ってこのアプリケーションを配備します。

2. アプリケーションの配備

1. 管理コンソールを開き、アプリケーションサーバーインスタンス「server1」の下の Applications ノードを開きます。

2. 「エンタープライズアプリケーション」フォルダを選択します。

3. 「配備...」ボタンをクリックします。

    アプリケーションの配備

4. 「ブラウズ」ボタンをクリックし、ファイルを指定するダイアログを表示します。

    アプリケーションの選択

5. 次のディレクトリに移動し、前の手順でアセンブルした jdbc-simple.ear ファイルを選択します。

    <install_dir>/samples/jdbc/simple/assemble/ear/

6. 「開く」をクリックして、ファイルの選択を確定します。

    ファイルのアップロード

7. 「了解」をクリックして次の手順に進みます。

    アプリケーションの指定

8.「了解」をクリックしてアプリケーションを配備する前に、「ベリファイアを実行」と「JSP をプリコンパイル」の 2 つのチェックボックスを確認します。これらは、配備プロセスの一部として J2EE[tm] アプリケーションベリファイアを実行するかどうかを指定するオプションです。サンプルアプリケーションで「asant verify」を実行してベリファイアを使用することもできます。「JSP をプリコンパイル」オプションを有効にすると、配備プロセスの最中に JSP ファイルがコンパイルされます。 JSP をコンパイルする分だけ配備プロセスが長くなりますが、JSP に初めてアクセスするときにかかる時間がずっと短くなります。

「了解」をクリックすると、アプリケーションが配備されます。

    配備オプション

9. 配備プロセスが完了すると、次のページが表示されます。

    配備されたアプリケーション

    情報アイコン配備時の処理 : アプリケーションを正しく配備するには、管理サーバーが稼動している必要があります。配備するアプリケーションを受け取った管理サーバーは、ターゲットサーバーインスタンスの server.xml ファイルにアプリケーションを登録し、ターゲットインスタンスのアプリケーション配備領域にアプリケーションをインストールします。

    アプリケーションに EJB が含まれていれば (EJB が存在すれば)、アプリケーションを初めて配備するとき、管理サーバーにより、すべての EJB についてスタブとスケルトンが自動生成されます。同じアプリケーションの 2 回目以降の配備では、EJB のインタフェースに変更があったかどうかが配備インフラストラクチャによって検出されるので、初回の配備と比較して EJB の処理はずっと速くなります。これは、初回の配備にかかる時間の多くが EJB のスタブとスケルトンの生成にあてられているためです。EJB のインタフェースが変更されていない場合は、再配備時にスタブとスケルトンは再生成されません。この機能を「スマート再配備」と呼んでいます。

    EAR の配備が完了すると、アプリケーションが次のディレクトリに展開されます。

    <domain_config_dir>/domain1/server1/applications/j2ee-apps/jdbc-simple_1

    最後の「_1」は、そのアプリケーションを配備した回数を表します。再配備を繰り返すたびに、この番号は増分されます。

    個別に配備される Web モジュールと EJB モジュールは、applications/j2ee-modules/ ディレクトリに展開されます。

10. 次の方法で変更を適用し、配備したアプリケーションをアプリケーションサーバーのインスタンスに認識させます。

10a. 「server1」ノードを選択します。

10b. 「変更の適用」ボタンをクリックします。この場合、サーバーインスタンスを再起動する必要はありません。

情報アイコンモジュールの配備 :Sun ONE Application Server 7 は、EAR ファイルの配備だけでなく、WAR モジュールと EJB JAR モジュールの配備にも対応しています。WAR モジュールの配備は、Web 専用アプリケーションで特に便利です。管理コンソールの Applications ノードには Web Apps フォルダと EJB モジュールフォルダが含まれています。モジュールは個別に配備され、各フォルダに保存されます。各モジュールは分離されており、EAR ベースの各アプリケーションと、個別に配備された WAR および EJB JAR の各モジュールとでは、アプリケーションサーバーのインスタンスが使用するクラスローダーの一時領域がそれぞれ異なります。


情報アイコンコマンド行からの配備 : 管理コンソールからだけでなく、asadmin ユーティリティを使ってコマンド行からアプリケーションを配備することもできます。詳細を確認するには、次のコマンドを実行します。

asadmin deploy --help

アプリケーションサーバーには Ant のカスタムタスクが含まれています。これは、Ant の build.xml ファイルを使ったアプリケーション配備プロセスを容易にするためのタスクです。サンプルアプリケーションのすべての build.xml ファイルは「deploy」ターゲットに対応しています。詳細については、各サンプルアプリケーションと『Using Ant with the Application Server』を参照してください。

これでアプリケーションが配備されました。次に、アプリケーションサーバーのログファイルの監視方法を確認してから、アプリケーションを実行します。

3. アプリケーションを監視する準備

サンプルアプリケーションを実行する前に、アプリケーションとアプリケーションサーバーランタイムの両方から出力される内容を表示できるように準備します。アプリケーションから stdout と stderr に出力される内容は、デフォルトの設定ではアプリケーションサーバーのイベントログにリダイレクトされます。このため、サーバー側のアプリケーションとアプリケーションサーバーインフラストラクチャの両方の実行をこのイベントログで監視できます。

  » UNIX 環境での出力とログの表示
  » Windows 環境での出力とログの表示
  » 「管理コンソールによるイベントログの表示」

UNIX 環境でのアプリケーション出力とログの表示

UNIX 環境でのログファイルの監視には、通常は「tail -f」コマンドが使用されます。

  1. server1」インスタンスのログディレクトリに移動します。
  2. cd <domain_config>/domain1/server1/logs/

  3. ログファイルに対して tail を実行します。
  4. tail -f server.log

「管理コンソールによるイベントログの表示」に進みます。

Windows 環境でのアプリケーション出力とログの表示

アプリケーションサーバーのインスタンスを使用してアプリケーションをテストする場合、Windows のデスクトップでサーバーのイベントログ情報を確認できます。 表示される情報は、アプリケーションから stdout および stderr への出力内容、例外とサーバーイベントに関するメッセージなどです。すでに説明したように、デフォルトの設定ではアプリケーションサーバーインスタンスのイベントログ情報はデスクトップに表示されます。

イベントログデータをデスクトップに表示しないようにするには、管理コンソールで設定を変更します。 アプリケーションサーバーインスタンスの「ログ」->「一般」領域の下の「Create Console」では、そのインスタンスのアプリケーションサーバーログの内容をデスクトップのコマンドウィンドウ内に表示するかどうか指定できます。

    「コンソールを作成」オプション

管理コンソールによるログの表示

サーバーインスタンスのログファイルを管理コンソール上で確認することもできます。

  1. 管理コンソールを開きます。
  2. 「server1」ノードを選択します。
  3. 「ログ」タブを開き、「イベントログを表示」リンクを選択します。
イベントログの確認

「了解」ボタンをクリックするとログの表示が更新されます。

25 項目より多くのログを表示するには、「表示するイベント数」に表示する項目数を入力し、「了解」をクリックして表示を更新します。たとえば「200」と入力し、どのように表示されるかを確認してください。

情報アイコンHTTP サーバーのアクセスログの表示 : 「ログ」領域の「HTTP アクセスログを表示」リンクを確認してください。このリンクをクリックすると、そのサーバーインスタンスの HTTP アクセスログが表示されます。 アクセスログのファイル名は access です。デフォルトの設定では、HTTP アクセスログファイルはサーバーイベントログと同じディレクトリに保存されます。

<domain_config_dir>/domain1/server1/logs/

これでサーバーのログファイルを監視できるようになりました。次に、データベースを起動し、アプリケーションを実際に実行します。

4. アプリケーションの実行

サンプルアプリケーションを実行する手順は、次のとおりです。

1. まず、サーバーイベントログファイルの内容を表示し、アプリケーションからの出力を確認できるようにします。

2. ブラウザを起動して次の URL にアクセスし、名前を入力して「Process」をクリックします。

    http://localhost:<port>/jdbc-simple

「Process」ボタンをクリックすると、アプリケーションからの出力がサーバーのイベントログファイルに書き込まれるので、これを確認します。また、アプリケーションサーバーによって JSP ソースファイルの最初のコンパイルが行われるため、処理に時間がかかることにも注意してください。

情報アイコンサーバーイベントログ内のアプリケーション出力 : アプリケーションが stdout や stderr に情報を書き込むと、デフォルトの設定では、同じ情報が CORE3282 (stdout) および CORE3283 (stderr) というメッセージ ID が追加されて、サーバーインスタンスのイベントログファイルに記録されます。stdout に書き込まれた情報は INFO レベル、stderr に書き込まれた情報は WARNING レベルに分類されます。サンプルアプリケーション jdbc-simple の実行中は、アプリケーションから多数のメッセージが生成され、サーバーのイベントログに記録されます。次に、出力されるメッセージの一部を引用します。

...
INFO:CORE3282:stdout:GreeterDBServlet is executing...
INFO:CORE3282:stdout:Retrieving JNDI initial context...
INFO:CORE3282:stdout: - Retrieved initial context successfully
INFO:CORE3282:stdout:Looking up dbGreeter bean home interface...
INFO:CORE3282:stdout:- Looking up: java:comp/env/ejb/jdbc-simple
INFO:CORE3282:stdout: - Looked up the EJB successfully
...

3. 挨拶文が表示されたら、表示されるリンクをクリックして過去に作成されたすべての挨拶文のログを表示します。

2 つ目の JSP ソースファイルのコンパイルが行われるため、ここでも処理に時間がかかります。

4. サンプルアプリケーションを実行して、2 回目の応答がどれだけ速いかを確認します。

JSP ファイルがすでにコンパイルされているので、2 回目の実行は初回時よりずっと速くなります。

トラブルシューティング

このサンプルアプリケーションの実行時に発生する一般的な問題を紹介します。

問題 考えられる原因 解決法
最初のページにアクセスできない

アプリケーションサーバーが稼動していない

URL に別のポート番号を指定している

アプリケーションサーバーが稼動していることを確認する

HTTP サーバーの正しいポート番号を指定する

詳細については、「アプリケーションサーバーの起動と停止」を参照

挨拶文は表示されるが、過去の挨拶文の数が「0」と表示される

「jdbc/jdbc-simple」が定義されていないため、JNDI ルックアップに失敗している

JDBC への接続に失敗している

データベースが稼動していない

JDBC リソースが正しく定義されていることを確認する

JDBC 接続プールのプロパティが解説手順に記載されている設定と一致することを確認する

PointBase Server を起動する

メインページを表示しようとすると 404 エラーになる アプリケーションが配備されていない アプリケーションを配備する

問題を解決したら、必ずアプリケーションサーバーのログファイルを確認してください。また、HTTP アクセスログファイルの内容を確認すれば、HTTP 要求が正しくアプリケーションサーバーに送られているかどうかを確認できます。

「サンプルアプリケーションの変更」に進みます。ここでは、アプリケーションサーバーが動的再配備と動的再読み込みにどのように対応しているかについて説明します。

前へ 開始 次へ