連載
» 2008年05月27日 00時00分 公開

Eclipseプラグインq4eでカンタンMaven入門(後編):Eclipse WTPを使ったWebアプリでもカンタンMaven (2/3)

[吉田英嗣,@IT]

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」ディレクトリを追加してください。

図4 プロジェクトディレクトリ構成 図4 プロジェクトディレクトリ構成
リスト1 HelloBean.java
package com.example;

import java.util.ResourceBundle;

public class HelloBean {
    private ResourceBundle rb = ResourceBundle.getBundle("msg");
    public String getName() {
        return rb.getString("name");
    }
}

リスト2 msg.properties
name=yoshidaei

リスト3 index.jsp
<jsp:useBean id="hello" class="com.example.HelloBean" />
<html>
<body>
  <h2>Hello <%=hello.getName()%>!</h2>
</body>
</html>

 それでは、作成したWebアプリケーションをWTPで実行してみましょう。プロジェクトのコンテキストメニュー(右クリック)の[実行]→[サーバーで実行]によりTomcat上で実行します。図5の画面が表示されれば成功です。

図5 実行結果 図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>設定を削除します。

<finalName>samplewebapp</finalName>

リモート・サーバへのデプロイも自動化!?

 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ファイルをデプロイする

図6 マシン環境の例 図6 マシン環境の例

 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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。