IntelliJ IDEA を使用した Jetty Web アプリケーションのリモートデバッグ方法です。
今回の目的は開発中にローカルではなく Vagrant 等の開発環境内で実行している Jetty Web アプリケーションをリモートデバッグできるようにすることです。
デバッグに使用する簡単なWebアプリケーションと Jetty のインストールは以下を参考にしてください。
リモートデバッグを有効にする
開発環境の Jetty にデバッグを有効にするためのオプションを追加します。$JETTY_HOME/start.ini
に以下のコマンドラインオプションを追加してください。ここで指定したaddress
は9999
以外でもいいですが後程使用します。
--exec -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n
コマンドラインで実行する場合は上記オプションをそのまま指定するだけです。
java -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n -jar start.jar
オプションを追加したらアプリケーションを再起動しましょう。
$ sudo /etc/init.d/jetty restart
IntelliJのデバッグ設定方法
IntelliJプロジェクトとデプロイされたWebアプリケーションをリンクします。「Run -> Edit Configurations」を選択、+ アイコンをクリックして Remote を選択してください。
以下画像のような設定になっていればOKです。Host と Port を確認してください。Port はリモートデバッグを有効にした際に指定したaddress
と同じ値になります。
デバッグ実行
右上の虫マークアイコンをクリックしてデバッグを開始します。任意の場所にブレークポイントを指定してアプリケーションにアクセスしてください。ブレークポイントで処理が停止すれば成功です。