WTPからのWebアプリケーションの起動
それでは、デバッグ機能を使ってみましょう。以下の手順を実行してください。
- doGetMethodサーブレットにブレークポイントを設定します。
- プロジェクトを右クリックし、[Debug As]を実行してアプリケーションを起動します(図10)。
- [Debug on Server]を選択します。
- [Choose an existing server]を選択できない場合は、[Manually define a new server]を使用します。
ウィザードの次のページ画面で、プロジェクトが[Configured project]の下に表示されていることを確認します。JSPやサーブレット、あるいは他のコードなどにブレークポイントを設定し、WTPのデバッグ機能を試してみてください。うまく動作しない場合は、図11に表示されているサーバーを削除した後に再起動する必要があるかもしれません(最初に再起動する必要はありません)。
Eclipseによってブラウザが呼び出され、アプリケーションが表示されます。ブレークポイントを設定した場所によっては、Debugパースペクティブが表示される場合もあります。また、実行時にブレークポイントを設定して結果を見ることもできます。あるいは、[Run As]→[Run On Server]を選択して同じように起動することも可能です。
WTPとM2プラグインの統合の確認
出力およびデバッグセッションの様子から、統合が成功しているかどうかを確認できます。
その他の重要なポイント
M2Eclipseプラグインは便利なだけでなく、WTPと確実に統合させることもできます。ただし、そのためには、たとえ今回使ったようなごく簡単なWebアプリケーションプロジェクトの場合でも、いくつか設定が必要になります。
以下に、M2とWTPを統合する際に、この記事で解説したテクニックに加えて頭に入れておくべき重要なポイントを紹介します。
- .classpathファイルを保持する必要はありません。また、以前にMaven Eclipseプラグインで使用されていたeclipse:eclipseゴールを使用する必要もありません。pom.xmlは個々のjarを理解するための有効なメタデータとして使用されるため、.classpathの方が内容はかなり少なくなります。リポジトリから参照されるすべてのjarが.classpathに含まれるわけではありません。
- WTPとM2の統合において重要なのは、フォルダ構成やJavaのビルドパス設定、および.settings/org.eclipse.wst.common.componentファイルを理解することです。
- ワークスペース内の.metadata\.plugins\org.eclipse.wst.server.core\フォルダを調べれば、配備した実際のアプリケーションについてすべてを学ぶことができます。[Run on Server]の実行時にWebアプリケーションが実際にアセンブルされる場所を見つけるには、サブフォルダを調べることも必要になります。詳しく調べれば、アセンブルされるアプリケーションのWEB-INF/libフォルダ内に、servlet-api jarやJUnit jarが存在しないことがわかります。その理由は、servlet-api jarのscopeには
provided
が、JUnit jarのscopeにはtest
がそれぞれ設定されているからです。M2プラグインの以前のビルドでは、この件で問題が起きていました。 - Maven 2を使用する場合、
MAVEN_HOME
などの環境変数は、JAVA_HOME
(およびそのパス)を除き一切必要ありません。また、JAVA_HOME
が必要なのはMaven 2をコマンドラインから実行する場合だけです。 - M2プラグインはMaven Embedderと呼ばれるMavenのコンポーネントを使用します。これはMaven バージョン2.1以降、コマンドラインインターフェース(CLI)で使用されています。
- Mavenを統合したまま非IDEベースで通常のビルドプロセスを実行する場合、Mavenをコマンドラインから使用する必要があります。Mavenをコマンドラインから実行し、WebアプリケーションをTomcatに配備する場合は、Maven 2のマニュアルやMaven 2の書籍、『Better Builds with Maven』を参照してください。