IntelliJ IDEAでJettyアプリケーションのリモートデバッグ方法

スポンサーリンク

IntelliJ IDEA を使用した Jetty Web アプリケーションのリモートデバッグ方法です。

今回の目的は開発中にローカルではなく Vagrant 等の開発環境内で実行している Jetty Web アプリケーションをリモートデバッグできるようにすることです。

デバッグに使用する簡単なWebアプリケーションと Jetty のインストールは以下を参考にしてください。

www.task-notes.com

リモートデバッグを有効にする

開発環境の Jetty にデバッグを有効にするためのオプションを追加します。$JETTY_HOME/start.iniに以下のコマンドラインオプションを追加してください。ここで指定したaddress9999以外でもいいですが後程使用します。

--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

Enable remote debugging

IntelliJのデバッグ設定方法

IntelliJプロジェクトとデプロイされたWebアプリケーションをリンクします。「Run -> Edit Configurations」を選択、+ アイコンをクリックして Remote を選択してください。

以下画像のような設定になっていればOKです。Host と Port を確認してください。Port はリモートデバッグを有効にした際に指定したaddressと同じ値になります。

f:id:tasukujp:20170910144533p:plain

Debugging With IntelliJ

デバッグ実行

右上の虫マークアイコンをクリックしてデバッグを開始します。任意の場所にブレークポイントを指定してアプリケーションにアクセスしてください。ブレークポイントで処理が停止すれば成功です。

f:id:tasukujp:20170910151827p:plain