GlassFish7のリモートデバッグについて。
Eclipseからリモート接続してデバッグするには、GlassFish側でデバッグポートを開けて、Eclipse側から接続する。
GlassFishはデフォルトではデバッグポートが開いていない。
ドメイン起動時に--debugを付けるか、自動的にデバッグモードが開始するよう設定する必要がある。
ドメイン起動時に「--debug」オプションを付けると、デバッグモードが有効になる。
> asadmin start-domain --debug 〜 Admin Port: 4,848 Debugging is enabled. The debugging port is: 9,009 Command start-domain executed successfully.
デフォルトドメインであるdomain1のデフォルトのデバッグ接続ポート番号は9009。
「Debugging is enabled. The debugging port is: 9,009」のメッセージが出るのは、設定が「address=9009
」になっている場合。
デフォルトでは「address=*:9009
」になっていて、このメッセージは表示されない。(が、デバッグ接続自体は出来る)
デバッグ接続用のポート番号は以下の設定ファイルで設定されている。
〜 <java-config classpath-suffix="" debug-options="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:9009" system-classpath=""> 〜
デフォルトでは「address=*:9009
」となっているが、「address=9009
」に変えた方がいいかもしれない。
「address=9009
」にすると、ドメイン起動時にデバッグポートのポート番号が表示されるため。
(「address=*:9009
」だとドメイン起動時に何も表示されないが、デバッグ接続自体は出来る)
ポート番号は管理コンソールでも確認・変更できる。
設定名 | 説明 | デフォルト |
---|---|---|
Debug | ドメイン起動時に自動的に(--debugオプション無しで)デバッグモードになるかどうか | false |
Debug Options | -agentlibの設定 |
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:9009 |
値を変更した場合、Saveボタンを押してもdomain.xmlファイルに反映されるだけで、ドメインを再起動しないと動作は変わらない。
Eclipse側は普通のリモートデバッグの設定でいい。
設定名 | 値の例 | 概要 | |
---|---|---|---|
Connection Type | Standard (Socket Attach) |
相手に接続する(GlassFishのドメインが先に起動している必要がある) | |
Connection Properties | Host | localhost |
GlassFishのホスト名 |
Port | 9009 |
GlassFishのデバッグポート |