>> EclipseによるJavaアプリケーションのデバッグへ
スタンドアロンAPだけでなく、WebAPも同じようにデバッグできます。その方法は大きく分けてローカルデバッグとリモートデバッグがありますが、今回は基本となるローカルデバッグの方法を見ていきます。
ローカルデバッグではサーブレット・コンテナをEclipseから起動する必要があり、そのために通常プラグインを利用します。デバッグの方法自体はスタンドアロンAPと同じですので、ここではプラグインの設定方法などを中心に解説します。尚、サーブレット・コンテナはTomcatを使用することを前提とします。
インターネットにプロキシ経由でアクセスしている環境で開発を行う場合、プラグインによってはEclipseにプロキシ設定をしておかないとweb.xml等に記述されているDTD等をプラグインが参照しようとしてEclipseが固まってしまう場合があります。
プロキシの設定は、メニューからウィンドウ>設定>インストール/更新を選択し、「プロキシー設定」の項目で行います。プロキシ経由のアクセスが必要な環境では設定しておいた方が良いでしょう。
サーブレット・コンテナとしてTomcatを使用する場合は、プラグインをインストールする前にTomcatをインストールしておきます。Tomcatの媒体は http://tomcat.apache.org/ からダウンロードして下さい。以下では2006/2/23時点の最新版である、Tomcat5.5.15をインストールしたものとして解説します。
JSPは実行時にServletソースファイルに翻訳されますが、このServletソースファイルの文字コードはデフォルトではUTF-8になります。デバッグ実行を行うと文字化けが発生する等の問題があるため、生成されるServletソースファイルの文字コードをEclipseのデフォルト文字コードに合わせておきます。
Tomcatをインストールしたディレクトリ/conf/web.xmlの以下のservlet要素に、文字コード設定を追加します。Eclipseのデフォルト文字コードがShift_JIS系(MS932等)ならばWindows-31Jとすれば良いでしょう。
Tomcat上で動作するアプリケーションの開発を支援する有名なプラグインです。Tomcatプロジェクトの作成, server.xmlの更新, EclipseからTomcatの起動/終了等の機能があります。以下では tomcatPlugin と呼びます。プラグインインストール前にTomcatをインストールしておきます。
http://www.sysdeo.com/eclipse/tomcatpluginからEclipseのバージョンにマッチする媒体をダウンロードしてインストールします。2006/2/23現在、最新版は3.1finalです。Eclipse3.x系の場合、この媒体をインストールすれば良いでしょう。ダウンロードしたファイルを解凍して生成されるcom.sysdeo...フォルダをEclipseのpluginフォルダにコピーし、Eclipseを再起動すればインストールは完了です。
Eclipseの上部に以下のようなアイコンが表示されているはずです。
![]()
メニューからウィンドウ>設定>Tomcatの項目を選択します。
まず最初にtomcatPluginが利用するTomcatバージョンとTomcatホームを設定します。

次にJVMの設定を行います。「Tomcat をデバッグモードで起動しない」のチェックをOFFにします。

Tomcat Webアプリケーションマネージャでは、アプリケーションマネージャのユーザ名とパスワードを設定します。この設定は必須ではありませんが、コンテキストの再ロードをEclipseから行う場合に必要になるので、設定しておいたほうが良いでしょう。ユーザ名とパスワードはTomcatのexe形式のインストーラでインストールした場合は、インストール時に設定したユーザ名/パスワードです。

まずは新規にTomcatプロジェクトを作成して、デバッグを行う方法です。
メニューからファイル>新規>プロジェクトを選択し、Javaの中のTomcatプロジェクトを選択して「次へ」をクリックします。

プロジェクト名を入力して「次へ」をクリックします。

最後にアプリケーションのURI等を設定します。特に必要なければデフォルトのままで良いでしょう。「終了」ボタンで終了します。

これでTomcatプロジェクトが作成されました。あらかじめ必要なjarファイルなどがビルドパスに通っている状態になっています。ソースフォルダは2つで、WEB-INF/srcとworkです。WEB-INF/srcは場所を変更しても良いですが、workはそのままにしておきます。

後はServlet/JSPの作成を行い、web.xmlも作成してWEB-INF/ に配置し、Javaソースにブレークポイントを設定し、EclipseからTomcatを起動(上に示した猫のマークのアイコンをクリック)すればデバッグが有効になります。
既存プロジェクトを右クリック>プロパティ>Tomcatを選択し、全般タブの「Tomcatプロジェクトである」にチェックを入れます。アプリケーションURIも入力し、OKをクリックすることで、このプロジェクトがWebアプリケーションとして設定されます(具体的にはserver.xmlにこのプロジェクトの設定が追加されるか、conf/Catalina/localhostにプロジェクト設定ファイルが追加されるだけです)。
Tomcatプロジェクトとして設定すれば、後は新規プロジェクトのデバッグと基本的に同じですが、JSPをデバッグしたい場合はworkフォルダを作成し、プロジェクトのソース・フォルダーとして加え、workのクラスファイル出力フォルダとして、同じくworkフォルダを設定します。
JSPに直接ブレークポイントを設定することはできませんが、JSPから生成されたJavaソースファイルに対してブレークポイントを設定することは可能です。Tomcatの場合workフォルダへソースファイルが生成されます。このソースにブレークポイントを設定してデバッグを行うことができます。
一度はJSPを実行しなければソースファイルが生成されないため、プレコンパイルしない限り一度はJSPを実行しておく必要があります。また、Javaソースファイルが生成された直後にブレークポイントを設定しても止まってくれないため、Tomcatを再起動するか、生成されたJavaソースを保存し直してEclipseによるビルドを発生させるようにする必要があります。
Webアプリケーション開発のための様々なエディタやツールを提供するプラットフォームです。Eclipseのトッププロジェクトの一つとして開発が続けられています。HTML/XML/JSPエディタや各種サーブレット・コンテナのサポート, J2EEアプリの開発/デバッグ機能等オールインワン的なパッケージです。
WTPは依存パッケージが多いため、インストールはやや面倒です。
まずhttp://www.eclipse.org/webtools/に行き、左のメニューから downloads を選択>Latest Downloadsの中からリリース済みのバージョンを選択します(2006/2/23現在では、1.0がReleasedとして提供されています)。
次にRequirementsに書かれた媒体をすべてダウンロードします。2006/2/23現在では、emf-sdo-xsd-SDK-2.1.1.zip, GEF-SDK-3.1.1.zip, JEM-SDK-1.1.0.1.zip の3つをダウンロードすることになります(eclipse-SDK-3.1.1-linux-gtk.tar.gzは対象外です)。
それからWTP本体をダウンロードします。同じページのWebTools Platform; Runtime にあるWTPのランタイムをダウンロードします。2006/2/23現在ではwtp-1.0.zipがWTP本体です。
そしてダウンロードした依存パッケージとWTPをインストールしてEclipseを再起動します。
WTPでWebアプリケーションを開発する場合、新規プロジェクト作成においてDynamic Web Projectを選択します。メニューからファイル>新規>プロジェクトを選択するとWebやJ2EE等の項目が増えていますが、この中からWeb>Dynamic Web Projectを選択します。

次にプロジェクト名を入力し、Webアプリケーションを動作させるランタイムを選択するため、Target
runtimeのNewをクリックします。
サーブレット・コンテナのリストから使用するものを選択します。Tomcatだけでなく、JBossや商用APサーバも選択できるようです。今回はTomcat5.5を選択して「次へ」をクリックします。
Tomcat5.5のインストールディレクトリやJREの選択を行い、「終了」ボタンをクリックします。

次の画面ではServletAPIのバージョンやJavaのバージョンを選択できます。ここではデフォルトのまま「次へ」をクリックします。
最後にコンテキスト・ルートの名前やWebAPモジュールを格納するディレクトリを選択します。ここも特に必要なければデフォルトのままで良いでしょう。
プロジェクトの作成が終わるとJ2EEパースペクティブに切り替わり、以下のようにProject
Explorerビューが左に表示されます。
Project Explorerからサーブレットを追加した場合は、web.xmlにサーブレット定義を自動で追加してくれるので、web.xmlを編集する必要がありません。サーブレットを新規作成した場合だけでなく、既存のサーブレットからサーブレット定義を追加することもできます。
今回は既存のサーブレットを追加することにします。事前にsrcフォルダに既存のサーブレットをコピーしておき、作成したプロジェクトのweb.xml要素(プロジェクト名と同じ名前でServletAPIのバージョン付きのアイコン)の中のServletsを右クリック>新規>Servletを選択してダイアログを表示させます。
「Use existing Servlet class」にチェックを入れ、「Browse」ボタンをクリックします。
以下のようにサーブレット一覧が表示されるので、該当のサーブレットをダブルクリックします(ダイアログが閉じられます)。
終了ボタンをクリックしてサーブレットの追加を終えます。これで<servlet>と<servlet-mapping>要素がweb.xmlに追加されました。URIを変えたい場合はServlet
Mappingsの項目から変更できます。
まだこの時点では作成したDynamic Web Projectがサーブレット・コンテナにデプロイされていません。デプロイするには、Serversビューに表示されているサーブレット・コンテナを右クリック>Add and Remove Projects...を選択してダイアログを表示されます。
左側にプロジェクト一覧が表示されるので、追加したいプロジェクトを選択してAddボタンで追加して終了します。
これでServersビューのサーブレット・コンテナにプロジェクトが追加された状態になります。後はサーブレット・コンテナを右クリック>Startを選択してサーブレット・コンテナを起動します。ブラウザを起動して先ほど追加したサーブレットへアクセスし、動作を確認して下さい。
デバッグを行う場合はサーブレット・コンテナをデバッグモードで実行する必要があるため、サーブレット・コンテナが開始されている場合は一旦停止し、右クリック>デバッグを選択してデバッグモードで起動します。
ブレークポイントの設定やデバッグのやり方は通常のデバッグと同じです。
tomcatPluginではJSPファイルにブレークポイントを設定することはできませんが、WTPではJSPファイルに直接ブレークポイントを設定することができます。設定方法もJavaソースファイルに設定する場合と同じです。
Javaソースのデバッグのようにインスペクション等は実行できないようですが、変数ビューで変数の値の確認や変更が可能です。
>> EclipseによるJavaアプリケーションのデバッグへ
資料室へ戻る