- 追加された行はこの色です。
- 削除された行はこの色です。
[[Spring-MVC/ステップ・バイ・ステップ]]
2008/03/22からのアクセス回数 &counter;
#contents
mavenを使ったプロジェクトでは、
- コンパイル
- テスト
- 実行
のサイクルはコンパクトに実行できるのですが、いざWebアプリケーションをデバッグしようと
するとwarファイルをtomcatのwebappsにコピーしてEclipseのデバッガーを使ってデバッグした
経験はありませんか?
ここでは、jettyプラグインで起動したWebアプリケーションをEclipseでデバッグする方法を説明します。
** mavenの実行プログラムのデバッグ設定 [#za541cbf]
javaのVMには、外部からのリモートデバッグを可能にするオプションが提供されています。
例えば、xxx.jarを
#pre{{
$ java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar xxx.jar
}}
これで、8000ポートを使って他のマシンからxxx.jarのプログラムをデバッグすることができるようになります。
*** mavenの設定 [#tb2d2738]
このリモートデバッグオプションをmavenに使用するために、環境変数MAVEN_OPTSを使います。
LinuxやMac OSXでは.bashrcに以下の行を追加します。Windowsの場合にはユーザの環境変数にセットしてください。
#pre{{
export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
}}
Mac OSXでターミナルを使用する場合には、ターミナルの起動後に以下のコマンドを実行してください。
(どうもターミナルの場合には、.bashrcが実行されないみたいです、どうしてでしょう?)
#pre{{
$ . ./bashrc
}}
*** Eclipseの設定 [#c5302a48]
つぎにEclipseのデバッガを設定します。
-- JavaのPackage Explorereからデバッグしたいプロジェクトを選択(ここでは、mvc-convention)
-- Runメニューから"Debug..."を選択します
-- Remote Java Applicationを選択し、右クリックでNewを選択します
#ref(remote_application.jpg);
-- Name:がmvc-convention、Project:にmvc-conventionが設定されていることを確認します
-- Host, Portがデバッグ対象のホストマシンのIPアドレスとポートを指定します。同一マシンの場合localhost, 8000とします。
#ref(remote_debug_setting.jpg);
-- Closeボタンで保存します
** デバッグの例 [#mc8c83ee]
では、実際にmvc-conventionのWebアプリケーションをデバッグしてみましょう。
*** ブレークポイントの設定 [#r676466c]
最初の一覧画面の表示でブレークポイントを設定してみましょう。
#ref(breakpoint.jpg);
*** jettyプラグインの起動 [#ge045b27]
つぎに、jettyプラグインでmvc-conventionのWebアプリケーションを起動します。
#pre{{
$ 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に設定されていることを示しています。
*** デバッガの起動 [#db4dcf5f]
-- ブラウザーをDebug perspectiveにセットします
-- Eclipseのrunメニューからdebug...を選択し、Remote Java Applicationのmvc-conventionを選択し、Debugボタンを押します。
*** ブラウザーの起動 [#r190f44e]
ブラウザーを起動し、
#pre{{
http://localhost:8080/mvc-convention/
}}
を選択すると
デバッガがブレークポイントで停止します。
#ref(debug.jpg);
** コメント [#m1f474a6]
この記事は、
#vote(おもしろかった,そうでもない,わかりずらい)
皆様のご意見、ご希望をお待ちしております。
#comment
#comment_kcaptcha