Webアプリケーションを作ってみる
生成されたプロジェクトをひな型にしてWebアプリケーションを作ってみます。先ほど生成したプロジェクトはMavenの標準ディレクトリ構成になっています(「Mavenの標準ディレクトリ構成」については、前編を参照)。
よって、この標準ディレクトリ構成に合わせて、JSPファイルやJavaクラスを作成していきます。今回は以下のJavaBeans、リソースファイル、JSPで構成する簡単なWebアプリケーションを作ります。作成後は図4のようなディレクトリ構成となります。
・JavaBeans
HelloBean.java(src/main/java配下に新規作成※注1)……リスト1
・リソースファイル
msg.properties(src/main/resources配下に新規作成)……リスト2
・JSP
index.jsp(ひな型として生成されているものを変更)……リスト3
※注1:初期状態では、「src/main/java」ディレクトリがありません。よって、src/main配下にjavaディレクトリを作成するとともに、プロジェクトのプロパティ設定においてJavaのビルドパスに「src/main/java」ディレクトリを追加してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
それでは、作成したWebアプリケーションをWTPで実行してみましょう。プロジェクトのコンテキストメニュー(右クリック)の[実行]→[サーバーで実行]によりTomcat上で実行します。図5の画面が表示されれば成功です。
ここまでで、ひとまずWebアプリケーションが完成しました。WTPを利用したことがある方は分かると思いますが、q4eを利用すると通常のWTPプラグインを利用したWebアプリケーションと同等にデバッグできます。
コンパイル! テスト!! パッケージング!!!
前編で説明したとおり、q4eで生成したプロジェクトは、ボタン1つでコンパイルとテストとパッケージングが自動的に行える状態になっています。[パッケージ・エクスプローラ]のプロジェクトのコンテキストメニュー(右クリック)の[Maven2]のメニュー(以降、「Maven2メニュー」)から[Package Artifact]を実行してみましょう。
上記では、テストコードを作成していないのでテストは実行されませんが、コンパイルとWARパッケージ化が実行され、「target」ディレクトリ配下に自動的にWARファイル「samplewebapp.war」が自動生成されます(※注2)。
※注2:生成されたWARファイル名にバージョン番号が付与されてません。これは、今回利用したarchetypeの「maven-archetype-webapp」では、生成されたPOMファイル中に以下の<finalName>設定が含まれており、WARファイルの名前を固定するようになっているためです。前回と同様に、バージョン番号付きのWARファイル、例えば「samplewebapp-0.0.1.war」としたい場合は、<finalName>設定を削除します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
リモート・サーバへのデプロイも自動化!?
Webアプリケーションにおいては、作成したWARファイルをテスト環境のリモートマシン上のアプリケーションサーバにデプロイしなければならないということもあるでしょう。そういった場合、リモートマシンへのWARファイルのコピーなどの手作業が発生することになります。これも自動化できないものでしょうか? ……Mavenならできるのです!
さまざまなアプリケーション・サーバの操作やデプロイができる 「Cargo Maven2 plugin」
「Cargo」は、JBossやTomcat、Jettyなどのさまざまなアプリケーションサーバについて、その違いを意識せずに、サーバの起動・停止やアプリケーションのデプロイなどを行えるようにするライブラリです。
編集部注:JBossについて詳しく知りたい読者は、連載「JBOSSでかんたんEJB」をご覧ください。
「Cargo Maven2 plugin」は、そのCargoライブラリをMaven2で利用できるようにするMaven2用プラグインです。このプラグインにより、リモートマシンへのデプロイも自動化できます。Cargo Maven2 Pluginは、最初の実行時に自動的にローカルリポジトリにダウンロードしてくれるので、特にインストールといった作業は必要ありません。
リモート環境へのデプロイの例として、図6のようなマシン環境を想定してみましょう。
・デプロイ先のアプリケーションサーバにApache Tomcat 5.5を利用
・目的に合わせてデプロイ先を変える。結合テストを行う場合にはitest.example.com上のTomcatに、また性能テストを行う場合にはptest.example.com上のTomcatにWARファイルをデプロイする
Cargo Maven2 Pluginを利用するに当たり、TomcatのWebアプリケーションマネージャのURLおよびユーザー名・パスワードの情報が必要となります。本稿では、以下とします。
・Tomcat WebアプリケーションマネージャURL
http://itest.example.com:8080/manager、および
http://ptest.example.com:8080/manager
・ユーザー名
admin
・パスワード
password
TomcatのWebアプリケーションマネージャについては、記事「GUIツールでTomcat管理の負担を減らす」を参考にしてください。
続いて次ページでは、リモート・サーバへの自動デプロイの仕方を具体的に解説します。
Copyright © ITmedia, Inc. All Rights Reserved.