Spring-MVC/ステップ・バイ・ステップ

2008/03/22からのアクセス回数 18972

mavenを使ったプロジェクトでは、

  • コンパイル
  • テスト
  • 実行

のサイクルはコンパクトに実行できるのですが、いざWebアプリケーションをデバッグしようと するとwarファイルをtomcatのwebappsにコピーしてEclipseのデバッガーを使ってデバッグした 経験はありませんか?

ここでは、jettyプラグインで起動したWebアプリケーションをEclipseでデバッグする方法を説明します。

mavenの実行プログラムのデバッグ設定

javaのVMには、外部からのリモートデバッグを可能にするオプションが提供されています。

例えば、xxx.jarを

$ java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar xxx.jar

これで、8000ポートを使って他のマシンからxxx.jarのプログラムをデバッグすることができるようになります。

mavenの設定

このリモートデバッグオプションをmavenに使用するために、環境変数MAVEN_OPTSを使います。 LinuxやMac OSXでは.bashrcに以下の行を追加します。Windowsの場合にはユーザの環境変数にセットしてください。

export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

Mac OSXでターミナルを使用する場合には、ターミナルの起動後に以下のコマンドを実行してください。 (どうもターミナルの場合には、.bashrcが実行されないみたいです、どうしてでしょう?)

$ . ./bashrc

Eclipseの設定

つぎにEclipseのデバッガを設定します。

  • JavaのPackage Explorereからデバッグしたいプロジェクトを選択(ここでは、mvc-convention)
  • Runメニューから"Debug..."を選択します
  • Remote Java Applicationを選択し、右クリックでNewを選択します
remote_application.jpg
  • Name:がmvc-convention、Project:にmvc-conventionが設定されていることを確認します
  • Host, Portがデバッグ対象のホストマシンのIPアドレスとポートを指定します。同一マシンの場合localhost, 8000とします。
remote_debug_setting.jpg
  • Closeボタンで保存します

デバッグの例

では、実際にmvc-conventionのWebアプリケーションをデバッグしてみましょう。

ブレークポイントの設定

最初の一覧画面の表示でブレークポイントを設定してみましょう。

breakpoint.jpg

jettyプラグインの起動

つぎに、jettyプラグインでmvc-conventionのWebアプリケーションを起動します。

$ mvn jetty:run
Listening for transport dt_socket at address: 8000
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[INFO] Building mvc-convention Maven Webapp
[INFO]    task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
--- 省略
2008-03-22 15:14:34.029::INFO:  Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server

最初にListening for transport dt_socket at address: 8000とあるのが、リモートデバッグが 可能であり、デバッグ用ポートが8000に設定されていることを示しています。

デバッガの起動

  • ブラウザーをDebug perspectiveにセットします
  • Eclipseのrunメニューからdebug...を選択し、Remote Java Applicationのmvc-conventionを選択し、Debugボタンを押します。

ブラウザーの起動

ブラウザーを起動し、

http://localhost:8080/mvc-convention/

を選択すると

デバッガがブレークポイントで停止します。

debug.jpg

コメント

この記事は、

選択肢 投票
おもしろかった 10  
そうでもない 0  
わかりずらい 3  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


添付ファイル: filedebug.jpg 1956件 [詳細] filebreakpoint.jpg 1898件 [詳細] fileremote_debug_setting.jpg 1913件 [詳細] fileremote_application.jpg 1943件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-06-20 (日) 13:12:39 (1042d)
SmartDoc