无法使用任何调试器连接到Glassfish

Rid*_*del 5 java debugging glassfish

我正在尝试将我最好的调试器连接到远程Glassfish实例(通过远程我的意思是不在同一台物理机器上运行,而不仅仅是在同一个VM中).

我的glassfish域配置已选中"debug"标志,并在启动期间报告server.log

-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009
Run Code Online (Sandbox Code Playgroud)

这表明(在我看来),确实启用了调试.

但是,当我尝试连接调试器时,它会失败.以下会话是一个示例(使用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.
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种行为?

编辑

请注意,这个jdb命令行已经作为在Web上进行Glassfish调试测试示例,这就是我使用它的原因

还要注意我在本地做这个jdb调试会话(也就是说当使用PuTTy连接到那台机器时,所以在运行的Glassifh机器上调用jdb).

Aar*_*lla 0

既然你们在同一台机器上,请尝试一下jdb -attach 9009

如果这不起作用,请查看jdb 文档,因为它使用非常不同的选项来准备 VM 进行调试。