レベル: 初級 Nathan A. Good, Author and Software Engineer, Alliance of Computer Professionals
2007年 5月 08日 Eclipse を Apache Tomcat と直接統合すると、Web 開発プラットフォームとしての Eclipse が一層使いやすくなります。Eclipseと Apache Tomcat V5.5 を設定する方法を、典型的な Hello World サーブレットを開発しながら学びましょう。
編集者からの注釈: この記事は 2004年5月に Geoffrey Duck が執筆した「Eclipse を Jakarta Tomcat の開発環境として使う」の続編です。
必要なコンポーネント
Eclipse V3.2 Callisto IDE (integrated development environment: 統合開発環境)には、Web 開発を行うための、そしてサーバーと統合するためのツールが含まれています。そのため、SDK (software developmentkit) の他には、Eclipse と Apache Tomcat とをインストールすればよいだけです。この記事で使用するバージョンは下記のとおりです。
表 1. この記事で使用するコンポーネントとバージョン
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 ウィンドウ
下記のように Callisto Discovery Site を選択し、そして Next をクリックします。
図 2. 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 プロジェクトを作成する
図 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 サーバー
サンプル・ページを作成する
この新しい動的な 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 の出力
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 とを組み合わせることで、容易に統合環境を実現することができ、それによって開発をスピードアップすることができます。
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | |  | Nathan A. Good はミネソタ州の Twin Cities エリアに住んでいます。彼はソフトウェアを書いている時以外は、PC やサーバーを構築し、新しい技術について資料を読み、そうした技術に取り組み、そして彼の友人達にオープソース・ソフトウェアに移行するように勧めて回っています。コンピューターに向かっていない時には (実はそういう時が多いのですが)、家族と時間を過ごしたり、教会に行ったり、そして映画を見に行ったりしています。 |
記事の評価
|