Tomcat と Eclipse を使って Web アプリケーションを開発する

Apache Tomcat と Eclipse Platform の組み合わせは素晴らしい Web 開発プラットフォームです

Eclipse を Apache Tomcat と直接統合すると、Web 開発プラットフォームとしての Eclipse が一層使いやすくなります。Eclipseと Apache Tomcat V5.5 を設定する方法を、典型的な Hello World サーブレットを開発しながら学びましょう。

Nathan A. Good, Author and Software Engineer, Alliance of Computer Professionals

Nathan A. Good はミネソタ州の Twin Cities エリアに住んでいます。彼はソフトウェアを書いている時以外は、PC やサーバーを構築し、新しい技術について資料を読み、そうした技術に取り組み、そして彼の友人達にオープソース・ソフトウェアに移行するように勧めて回っています。コンピューターに向かっていない時には (実はそういう時が多いのですが)、家族と時間を過ごしたり、教会に行ったり、そして映画を見に行ったりしています。



2007年 5月 08日

編集者からの注釈: この記事は 2004年5月に Geoffrey Duck が執筆した「Eclipse を Jakarta Tomcat の開発環境として使う」の続編です。

必要なコンポーネント

Eclipse V3.2 Callisto IDE (integrated development environment: 統合開発環境)には、Web 開発を行うための、そしてサーバーと統合するためのツールが含まれています。そのため、SDK (software developmentkit) の他には、Eclipse と Apache Tomcat とをインストールすればよいだけです。この記事で使用するバージョンは下記のとおりです。

表 1. この記事で使用するコンポーネントとバージョン
コンポーネントこの記事で使用するバージョン
Eclipse Platform3.2.2
Java EE 5 SDK1.5.0_09
Apache Tomcat5.5.20

Eclipse IDE は、JSP (Java™ Server Page) や Java ファイルの開発環境として使われるオープン・ソースのIDE です。Web 開発ツールと J2EE (Java 2 Platform, Enterprise Edition) 開発ツールがインストールされているため、Eclipseは HTML や JSP、そしてサーブレットを作成するための強力なツールです。

マシン上でサーブレットを実行するためには Java SDK が必要です。そして最後の Apache Tomcat はオープンソースの Web/サーブレット・コンテナーであり、Javaサーブレットと JSP の正式な基準実装に使われています。


インストール

Eclipse と Tomcat のインストール方法は似ています。どちらもアーカイブ・ファイル・フォーマットからハードディスク上のフォルダーに解凍されます。何らかの理由でいずれかをアンインストールしたい場合には、ファイルを解凍したディレクトリーを単純に削除すればよいだけです。

Eclipse をインストールする

Eclipse IDE をインストールするためには、Eclipse からダウンロードした、圧縮された (.zip あるいは .tar.gz)ファイルを解凍し、解凍されたフォルダーを適当な場所に移動します。私は、使用しているオペレーティング・システムの通常の規則に従った場所にインストールするようにしています。例えばEclipse を Macintosh にインストールする場合には、Eclipse フォルダーを Applications フォルダーに置きます。もしMicrosoft™ Windows™ を使用している場合には、解凍されたフォルダーを C:\Program Filesディレクトリーに置きます。

Eclipse をダウンロードしてインストールしたら、Eclipse を起動します。Web プロジェクトを作成する前に、J2EE 開発プラグインとWeb 開発プラグインをインストールする必要があります。幸い、Callisto Discovery Site を使えば、これらのプラグインのインストールは簡単です。

Web ツールをインストールする

Eclipse IDE が実行している状態で、Help > Software Updates > Find and Installを選択します。このオプションを使うと、Web サイトに行かなくても Web ツールをダウンロードしてインストールすることができます。

下記のように Search for New Features to Install を選択し、そして Next をクリックします。

図 1. Install/Update ウィンドウ
Install/Update ウィンドウ

下記のように Callisto Discovery Site を選択し、そして Next をクリックします。

図 2. Callisto Discovery Site を選択する
Callisto Discovery Site を選択する

Callisto Discovery Site で、Web and J2EE Development ボックスをチェックします。そうするとウィザードは即座に、依存関係がないという警告を表示します。Select Required をクリックすると、これらの警告は消えるはずです。Graphical Editors and Frameworks と Models andModel Development のカテゴリーの、一部あるいはすべてのコンポーネントが選択されています (図 3)。この理由は、これらのコンポーネントがWeb プラグインと J2EE プラグインのインストールに必要なためです。

図 3. インストール用のフィーチャーを選択する
インストール用のフィーチャーを選択する

Next をクリックして続けると、選択した各フィーチャーに対する使用許諾条件が表示されます。使用許諾条件に合意する場合には、それらを受け入れ、ウィザードに従って残りのプロセスを続けます。IDEがプラグインのインストールを終了すると、変更を有効にするために Eclipse を再起動するように指示されます。先に進む前に、必ず IDE を再起動します。

IDE を再起動すると、新しいフィーチャーを利用して動的な Web プロジェクトの開発を開始することができます。

Tomcat をインストールする

Apache Tomcat をインストールするためには、ダウンロードしたアーカイブからファイルを抽出し、それらをどこかのディレクトリーに置きます。私は後で見つけやすいように、C:\appsディレクトリーに置きました。これで、とりあえず終了です。後ほど、Eclipse を使って Tomcat を起動します。


新しい Web プロジェクトを作成する

Eclipse IDE から File > New > Project を選択すると、プロジェクト・ウィザードが表示されます。Wizards ボックスに Web と入力すると、New Project ウィンドウがウィザードをフィルターし、一致するウィザードを表示します。この方法を使うと、各項目を調べるよりも容易に、必要なウィザードを見つけることができます。

リストから Dynamic Web Project を選択します。Standard Web Project Wizard を使って静的な HTML Web プロジェクトを作成します。技術的にはTomcat を使って静的な Web サイトを実行することもできますが、静的なコンテンツの場合には Apache Web Server のようなWeb サーバーの方が適切なことがあります。静的なページのサービス専用に作られた Web サーバーはオーバーヘッドが少なく、また静的なサービスに最適に調整されていることが多いものです。

対象のランタイムを決定する

Target Runtime の下に <None> が表示されています (図 4)。これは、まだ Apache Tomcat 用のランタイムを作成していないためです。New をクリックして New Target Runtime Wizard を開きます。Apache フォルダーから Apache Tomcat V5.5 を選択し (図 5)、そしてNext をクリックします。

図 4. 新しい動的 Web プロジェクトを作成する
新しい動的 Web プロジェクトを作成する
図 5. 新しいサーバー・ランタイムを作成する
新しいサーバー・ランタイムを作成する

ここで、ランタイムに名前を付けることができますが、デフォルト名である Apache Tomcat V5.5 でも問題はありません。Browse をクリックし、Apache Tomcat を構成するためのベース・フォルダーを見つけます (私の場合は図 6 のように C:\apps\apache-tomcat-5.5.20です)。IBM® JRE (Java Runtime Environment) のバージョンを、(特別な理由がない限り) ワークベンチにデフォルトのJRE と同じままにしておくように推奨します。有効なディレクトリーを入力したら、Finish をクリックしてランタイム構成を作成します。

図 6. サーバーの場所を定義する
サーバーの場所を定義する

ランタイム構成

もし後でランタイム構成を変更したくなった場合には、Window > Preferences を選択して変更を行うことができます。フィルター・ボックスに Runtime と入力すると、インストールされたランタイム (Installed Runtimes) の構成設定のリストが Server カテゴリーの下に表示されます。ApacheTomcat ランタイムを選択し、Edit をクリックして、名前やディレクトリーの場所、JRE のバージョンなどを変更します。

ここで、J2EE Perspective に切り替えるかどうかを尋ねられます。私は必ず yes と答えるようにしています。その理由は、このパースペクティブにはServers ビューのようなビューが含まれており、後で Tomcat を起動停止するために便利だからです。Window > Show View を選択すれば、いつでも Servers ビューを開くことができます。

サーバーを追加する

Servers ビューには、何も含まれていないビューがあります。このビューは、アプリケーション・サーバーと Web サーバーのためのものです。このビューでそれらをコントロールし、それらの状態をモニターすることができます。IDEという便利な環境から直接 Tomcat をコントロールするためには、コンテキスト・メニューから New < Serverを選択し、Tomcat への参照を追加します。New Server ウィザード (図 7) はデフォルトとして、先ほど作成した Apache Tomcat V5.5 ランタイムを選択します。

図 7. 新しいサーバーを定義する
新しいサーバーを定義する

Next をクリックすると、サーバーにプロジェクトを追加したいかどうかを尋ねられます。前のステップで作成したプロジェクトを選択し、次に Add をクリックします。

図 8. サーバーにプロジェクトを追加する
サーバーにプロジェクトを追加する

Finish をクリックしてウィザードを閉じます。すると Servers ビューには、このプロジェクトを配下に持つ Tomcat V5.5 Serverが含まれています。

図 9. Servers ビューでの Tomcat サーバー
Servers ビューでの Tomcat サーバー

サンプル・ページを作成する

この新しい動的な Web プロジェクトと Tomcat サーバーとの統合をテストするための最も簡単な方法は、単純な JSP を作成し、それをTomcat にデプロイする方法です。新しい JSP ファイルを作成するためには、File > New > Other を選択するか、あるいはコンテキスト・メニューを使います (Project Explorer ビューでプロジェクト名を右クリックし、そして New > JSP を選択します)。

親フォルダーが WebContent であることを確認し、そのファイルの名前を index.jsp にします。Finish をクリックし、デフォルトのテンプレートを使ったページを作成します。もし Next をクリックすると、新しいページに使用するための、さまざまなテンプレート (HTML あるいは XHTML など) を選択することができます。このテストの場合にはデフォルトで十分です。

下記のページ・コードは、動作していることがわかるように、単純な日付を表示します。

リスト 1. index.jsp の内容
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Title</title>
</head>
<body>
<% java.util.Date d = new java.util.Date(); %>
<h1>
Today's date is <%= d.toString() %> and this jsp page worked!
</h1>
</body>
</html>

ページをデプロイする

テスト・ページが完成したので、Eclipse を使ってこのページを Apache Tomcat に再度デプロイします。Servers ビューで、Stateが Republish に設定されていることに注目してください。これは、このプロジェクトが最後にサーバーにデプロイされた後で変更されているためです。サーバーを右クリックし、メニューからPublish を選択します。プロジェクトがサーバーにデプロイされると、State は Synchronized に変化します。

問題が起きた場合には

場合によると、問題が起きることがあります。Tomcat によって起きたエラーを見るためには、Console ビューを使います。Consoleは、Servers ビューで設定されたサーバーからの出力をキャプチャーします。

プロジェクトが正常にデプロイされ、サーバーが起動したら、ブラウザーを開き、http://localhost:8080/[ProjectName]/までナビゲートします ([ProjectName] は作成された動的 Web プロジェクトの名前です)。先ほど作成した新しい Web ページが表示され、日付が現在の日付になっているはずです。ページを更新すると、日付が変化します。

図 10. ブラウザーに表示された index.jsp の出力
ブラウザーに表示された index.jsp の出力

Hello World サーブレット

このプロジェクトに Java サーブレットを追加し、それらをデプロイすることができます。テスト用に使用するサーブレットを素早く作成するためには、ServletWizard を使って、Project Explorer ビューでこの動的 Web プロジェクトを右クリックし、そして New > Other を選択します。Web フォルダーの下で Servlet を選択し、そして Next をクリックします。

Java Package の隣にパッケージ名 com.example.servlets を追加し、Class name の隣に HelloServlet を追加します。Finish をクリックします。これは単なる例なので、デフォルトで構いません。Eclipse IDE がサーブレット・クラスを作成してくれます。テスト・サーブレットの動作を見るためには、ResponseWriterにメッセージを出力するための 1 行を doGet() メソッドに追加します。このサーブレット・クラスは下記のようなものになるはずです。

リスト 2. HelloServlet.java の内容
package com.example.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class for Servlet: HelloServlet
 *
 */
 public class HelloServlet extends javax.servlet.http.HttpServlet 
     implements javax.servlet.Servlet {

    /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#HttpServlet()
         */
        public HelloServlet() {
                super();
        }       
        
        /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, 
             HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
response.getWriter().write("Hello, world!");
        }       
        
        /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, 
             HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
                // TODO Auto-generated method stub
        }                   
}

サーブレットを追加すると、Eclipse IDE はプロジェクトが変更されたことを通知します。再度 Servers ビューを見ると、Tomcatサーバーの隣の Status 列に Restart now が表示されます。サーバーを再起動するためには、Servers ビューでサーバーを右クリックし、次にRestart > Start を選択します。ブラウザーを開き、http://localhost:8080/[ProjectName]/HelloServlet までナビゲートします([ProjectName] は動的 Web プロジェクトの名前です)。「Hello, world!」というテキストが、ブラウザー・ウィンドウに表示されます。index.jspファイルのコードと同じような日付を doGet() メソッドに追加し、そして Eclipse IDE を使ってサーブレットを再デプロイします。


まとめ

サーバーを起動し、停止し、そしてサーバーにデプロイするための JSP やサーブレットの開発を、IDE から出ることなく行えた方が生産的です。Eclipseと Apache Tomcat とを組み合わせることで、容易に統合環境を実現することができ、それによって開発をスピードアップすることができます。

参考文献

学ぶために

製品や技術を入手するために

  • Eclipseプロジェクトの正式 Web サイトから、Java や JSP その他のための強力な (そしてフリーの) IDE である、Eclipse をダウンロードしてください。
  • Apache Tomcatをダウンロードし、Web アプリケーションの実行に使用してください。
  • Sun Microsystems からJava EE 5 SDKをダウンロードしてください。
  • IBM alphaWorksに用意された最新のEclipse technology downloadsを調べてください。
  • IBM 製品の試用版をダウンロードし、DB2® や Lotus®、Rational®、Tivoli®、WebSphere® などのアプリケーション開発ツールやミドルウェア製品を実際に試してみてください。
  • 皆さんの次期オープンソース開発プロジェクトをIBM trial softwareを使って革新してください。ダウンロード、あるいは DVD で入手することができます。

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroupsがあります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platformが開きます)。
  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogsからdeveloperWorks コミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=246384
ArticleTitle=Tomcat と Eclipse を使って Web アプリケーションを開発する
publish-date=05082007