JBoss、Glassfishともに、もともとリモートデバッグ用にオプションが用意されている。
確認した環境
- Glassfish4.1.2
- JBoss7.4
- Java1.8
GlassFishの場合
--debugオプションをつけて起動
asadmin start-domain --debug
JBoss(standalone)の場合
standalone.confファイルの以下のコメントをはずす。以下は、address=8787なので8787がデバッグ用のポート。
# Sample JPDA settings for remote socket debugging
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
起動時には、localhost以外からも起動できるようbindアドレスを指定する。
standalone.sh -b 0.0.0.0
Eclipse側の設定
プログラムを停止したいところで、ブレークポイントを設定したのち、Eclipseのデバッグ設定画面を開き、「Remote Java Application」の設定を行います。以下のEclipse側の設定と同じ。