Webアプリケーションのテスト中にリモートデバッグしたい時が多々あります。IntelliJ IDEAを使った方法を毎回やり方を忘れるのでメモメモ。
環境
アプリケーションは開発サーバー上ですでに動いているものとします。その他の情報については以下の通り。
- サーバー
- CentOS7 + Tomcat7 + Java11
- アプリケーションURL:http://example.com/app/
- クライアント
- Windows10
- IntelliJ IDEA ULTIMATE 2019.3
Tomcatの設定
サーバ(Tomcat)の設定
$CATALINA_HOME/bin/setenv.shに以下を追加します。実際は改行は入れません。addressのポート番号8000は他で使用していない値を指定します。
CATALINA_OPTS= "$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8000"
Tomcatサービスを再起動してポート8000でLISTENしていることを確認します。また、外部から接続できるようFWを設定しておきます。
クライアント(IntelliJ IDEA)の設定
メニューから[ファイル]→[設定]と選択します。そして、[ビルド、実行、デプロイ]→[アプリケーション・サーバー]を選択し、Tomcatサーバーが存在することを確認します。存在しない場合、+をクリックしてTomcatサーバーを追加します。私の場合、すでにあったけど昔追加したのかな?
メニューから[実行]→[構成の編集]と選択してデバッグ構成を追加していきます。+をクリックしてTomcatサーバー→Remoteを選択します。以下の項目を設定します。
場所 | 項目 | 値 |
タブ上部 | 名前 | (任意の名前) |
サーバータブ | ブラウザーを開く:URL | http://example.com/app/ |
サーバータブ | リモート接続設定:ホスト | example.com |
サーバータブ | リモート接続設定:ポート | 80 |
スタートアップ/接続タブ | デバッグ:ポート | 8000 |
リモートデバッグの実行
メニューから実行(T)→デバッグ(Alt+Shift+F9)と選択し、上で追加した構成をクリックします。するとブラウザが立ち上がり、デバッグ可能となっているはずです。
適当な位置へブレークポイントを設定して確認してみてください。