2012-05-09 30 views
5

リモートのGlassfishインスタンスにベストデバッガを接続しようとしています(つまり、同じ物理マシンではなく、同じVM内で実行されているわけではありません)。デバッガを使用してGlassfishに接続することができません

マイGlassFishのドメイン構成は、(私の心に)を示しているスタートアップ

-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009 

中にチェック「デバッグ」フラグ、およびserver.logに報告書を持って、デバッグが実際に有効になっています。

ただし、デバッガに接続しようとすると失敗します。次のセッションは例です(PuTTyで実行):

$ jdb -connect com.sun.jdi.SocketAttach:port=9009 
java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385) 
    at java.net.Socket.connect(Socket.java:529) 
    at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:204) 
    at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:98) 
    at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:72) 
    at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:358) 
    at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:168) 
    at com.sun.tools.example.debug.tty.Env.init(Env.java:64) 
    at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1010) 

Fatal error: 
Unable to attach to target VM. 

何が原因ですか?私はまた、それが時に言うことだ(私はローカルでこのJDBのデバッグセッションをやって気づく

それを使用して、なぜこのJDBコマンドラインは、ここで、example of Glassfish debug testing on the webとして与えられている

EDIT

お知らせですPuTTyを使ってそのマシンに接続しているので、マシンGlassifh上でjdbを起動しています)。

+1

'ps -ef |を実行できますか?グレープフルーツがあなたのjvm paramsで始まっていることを迅速に確認するgrep java'また、そのポートの状態のnetstat? – nsfyn55

+1

あなたが「走っていることを意味する」と言ったとき、これは「遠く離れている」という意味でしたか? – vkraemer

+0

@vkraemer確かに。私はそれに応じて質問を変更しました。 – Riduidel

答えて

0

同じマシンにいるので、代わりにjdb -attach 9009を試してください。

これでうまくいかない場合は、 という非常に異なるオプションを使用してデバッグ用のVMを準備するため、jdb documentationを参照してください。

0

デバッグするJVMがリモートマシン(別のIPアドレスを持つマシン)にある場合は、attachオプションの一部としてホスト名またはIPアドレスを含める必要があります。

jdb -attach <hostname-or-address>:<port-number> 

jdbはスマートですが、JPDAクライアントを待っているポートを見つけるためにネットワークを検索することはありません。

このdocument about jdbを見てください。

関連する問題