■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      2008年05月04日

    楽しいJava講座 - 初心者から達人へのパスポート
                  vol.102

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


[このメールマガジンは、画面を最大化して見てください。]


今日はゴールデンウィーク期間中なので、手短に済ませましょう。


========================================================
◆ 01.Tomcatのアプリケーション開発
========================================================


前回のデプロイ作業で、imagesフォルダーをコピーするのを
忘れていましたので、ここで追加説明させていただきます。

vol.087で画像ファイルをC:\JavaWorks\JStudy2\imagesフォルダー
にコピーし、この画像ファイルの場所をデータベースのITEMテーブル
に登録していました。
このことを忘れていたため、デプロイ先にこれらのファイルを
コピーしていませんでしたが、これでは、デプロイしたアプリケー
ションで画像が表示できません。


EclipseのtomcatPluginでのプロジェクト(ここではJStudy2)
の下のフォルダー構造は、Tomcatのwebappsフォルダー下のアプリ
ケーションのフォルダー構造に合わせて作られていますので、
必要なファイルは、そのまま同じフォルダー構造のままコピーして
くればいいようになっています。
したがって、imagesフォルダーにはいっている画像ファイルは
imagesフォルダーごと、Tomcatのwebappsフォルダー下のJStudy2下
にコピーしてください。
つまり、
C:\JavaWorks\JStudy2\images

C:\Tomcat6.0\webapps\JStudy2\images
にコピーします。

これで、画像が正しく表示できるようになります。



さて、開発されたアプリケーションは、きちんと動作するかどうか、
テストをしておく必要がありますが、このテストには、大きく
分けて、単体テスト(unit test)、統合テスト(integrated test)、
システム・テスト(system test)の3種類があります。

単体テストというのは、開発された単体(通常は一つのクラスが
一つの単体として扱われる)ごとに正しく機能するかどうか
テストすることを意味し、基本的には、クラスを作成したプロ
グラマーが自分でテストします。
このテストは、開発作業を行っているのと同じコンピューターで
実施するのが普通ですが、場合によっては別のコンピューターで
実施することもあります。

統合テストというのは、複数のクラスの組み合わせをテストする
もので、サブシステム(システムを機能ごとに分けたもの)ごとに
開発者とは異なる要員が実施します。
そして普通は、開発作業を行っているのとは別のコンピューターで
テストします。
対象となるサブシステムのすべてのクラスが単体テストに合格して
いることが統合テストの前提となります。

システム・テストというのは、アプリケーション全体を本番さながらの
環境でテストするものです。
基本的には、開発作業を行っているのとは別のコンピューターでテスト
します。普通は、本番稼動で使用するコンピューターでテストしますが、
本番用とは別のコンピューターでテストすることもあります。
すべてのサブシステムが統合テストに合格していることがシステム・
テストの前提となります。

システム・テストに合格したアプリケーションはユーザー(アプリケーション
の使用者)に引き渡され、本番への準備を行った後、本番稼動に移ります。
なお、ユーザーが別の会社(お客様)の場合は、さらに、お客様自身でアプリ
ケーションの動作確認テストをしてもらうのが普通で、これを受け入れテスト
と呼ぶことがあります。


ということは、それぞれのテストのたびに別のコンピューターにデプロイを
行う必要があるわけですが、これらのテストで不合格になった場合はプログ
ラムを修正して再度テストをやり直しすることになり、そのたびに再度デプ
ロイを行うことになります。また、本番稼動後も保守(maintenance)や
バージョン・アップなどで、何度もデプロイを行う機会が発生します。


というわけで、デプロイは何度も行われる可能性がありますので、できるだけ
簡単に行えるようにしておいたほうがいいわけです。
そのために、WebアプリケーションをWAR(Web ARchive)ファイルという一つの
ファイルにまとめ、デプロイを容易にする技術が提供されるようになりました。


WARファイルというのは、JARファイルと同じ形式(ZIPファイルの形式)で
Webアプリケーションの各ファイルを一つのファイルに圧縮してしまうもの
で、これをWebコンテナー(ここではTomcat)のwebappsディレクトリー下に
置くと、Tomcatの起動時に自動的に解凍され、前回説明したようなディレク
トリー構成に展開されて、Webアプリケーションが実行可能な状態になります。


Eclipse(のtomcatPlugin)では、このWARファイルの作成も容易に行うことが
できます。その手順は以下の通りです。(予めEclipseを起動しておきます。)


まず、準備として、対象とするプロジェクト(ここではJStudy2)に対し、
以下のようにしてWARのファイル名を設定しておきます。

(1) パッケージ・エクスプローラーにおいて、プロジェクト(JStudy2)を
右クリックし、「プロパティー」を選択します。
(2) 「プロパティー」ウインドウの左側で「Tomcat」を選択し、右側の
「WARエクスポート設定」タブをクリックします。
(3) 「エクスポートするWARファイル」の欄に(たとえばJavaWorksフォルダー
の中にWARファイルを作成したい場合は)
C:\JavaWorks\JStudy2.war
のようにWARのファイル名を指定する(プロジェクトの名前をファイル名にし、
拡張子は.warにして下さい)か、あるいは既に作成されたWARファイルがある
場合は、「参照」ボタンをクリックして既存のWARファイルを選択します。
(この場合、既存のWARファイルが上書きされることになります。)
なお、「.javaファイルをエクスポート」という選択項目がありますが、これ
はWARファイルの中にソース・ファイルを書き込みたいときに選択(チェック
マークを入れる)するもので、通常は選択しません。
(4) 「OK」ボタンをクリックします。


WARファイルを作成するには、下記のように操作します。

(1) パッケージ・エクスプローラーにおいて、プロジェクト(JStudy2)を右クリックし、
「Tomcatプロジェクト」→「プロジェクト設定に従いWARファイルを作成」を選択します。
(2) 「操作が成功しました」のメッセージが表示されたら、「OK」ボタンをクリック
します。
(3) 準備で指定したフォルダーに、WARファイルが作成されていますので、確認
します。


そして、作成されたWARファイルをTomcatのwebappsディレクトリー下に置くと、
Tomcatの起動時に自動的に解凍されるわけですが、このときに作成されるアプリ
ケーションのフォルダー名はWARファイルのファイル名と同じになります。
つまり、JStudy2.warファイルなら、JStudy2フォルダーが作られます。



さて、これまでEclipseでの開発に使ったのとは別のPC(パソコンのことをPCと略し
ます)にデプロイを行う場合は、まずTomcatとMySQLをインストール(vol.084で
説明したようにMySQLのmy.iniファイルにsjisを指定しておくこともお忘れなく)
した上で、Webアプリケーションをデプロイすることになりますが、上記のデプロイ
を行っただけでは、データベースにテスト用のデータがはいっていませんから、
テストができません。

したがって、テスト用のデータを入れる(通常、「データをロードする」という
表現をする)作業を行いましょう。

しかし、これまでに行ってきたような、データベースの作成(create database)、
テーブルの作成(create table)、データの挿入(insert)の操作を再度繰り返す
のは面倒ですね。

このような作業のために、通常、RDBMS製品には、データを外部ファイルに書き出し
たり、外部ファイルからデータベースにロードしたりするためのツールが用意され
ていますので、これを使うと作業が楽になります。


MySQLの場合には、mysqldumpとmysqlimportというツールが用意されていますので、
これを使ってみましょう。


(続く)


では、今日はここまでにします。

何か、わからないところがありましたら、下記のWebページまで質問を
お寄せください。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2008 Future Lifestyle Inc. 不許無断複製