1
2

More than 5 years have passed since last update.

CentOS7上で複数起動されているtomcatへリモートデバッグ接続する

Last updated at Posted at 2017-01-25

軽くググッた限り、マルチインスタンス運用下のtomcatにリモートデバッグ設定する方法が見つからなかったので、備忘も兼ねて

環境

バージョン
CentOS 7.2
Tomcat 7.0系

背景

  • 通常、tomcatのリモートデバッグ設定は、catalina.shからjpda(Java Platform Debugger Architecture)を有効化する形で行う
catalina.sh jpda start
  • だが、CentOS7にyumでtomcat7をインストールすると、catalina.shは生成されない。つまり、この方法は使えない ヽ(´ー`)ノ

前提

  • ポート類は事前に利用可能な状態にしておくこと

  • こちらの内容を前提とします(特に[tomcatサービスの管理])。大変詳しく解説されております

参考メモ/CentOS7のApache Tomcatパッケージについてメモ

対処

1. tomcat用serviceファイル /usr/lib/systemd/system/[tomcat@.service]、項目[EnviromentFile]で指定したファイルに、以下の記述を追加する

/etc/sysconfig/EnviromentFile[1...n]
JAVA_OPTS = '[元々の内容] -agentlib:jdwp=transport=dt_socket,address=[ポート番号],server=y,suspend=n'
JPDA_SUSPEND=y
JPDA_ADDRESS=[このホストのIP]:[ポート番号]

2.マルチインスタンス運用時は、このファイルが複数あるはずなので、すべてのファイルに追加する。ポート番号の重複に注意

3.tomcatを再起動する

systemctl restart [tomcat@.service]

4.リモートから、設定したポートに接続できることを確認する。"Connection refused"がでなければOK

telnet [さっき設定したIP] [さっき設定したポート番号]

5.Eclipseから接続する場合、メニュー[実行] -> [デバッグの構成] -> [リモートJavaアプリケーション]から、接続タイプ[標準(ソケット接続)」、ホスト[さっき設定したIP]、ポート[さっき設定したポート番号]を設定し、[デバッグ]ボタンを押す

解説

  • やっていることは、catalina.shで付加されるデバッグ設定オプション文字列を、EnviromentFileのオプション設定部に追加しているだけ

  • 前述のページでも触れられているが、他ディストリビューションと環境が大きく異なる為、面食らった

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2