【问题标题】:Remote Debugging: Failed to connect to remote VM. Connection timed out远程调试:无法连接到远程虚拟机。连接超时
【发布时间】:2015-02-08 22:35:47
【问题描述】:

我在我的 Ubuntu VM 上使用 Eclipse 对远程 WebLogic 应用程序进行远程调试,然后它停止工作。我在远程服务器中打开了调试。从我的虚拟机我可以远程登录到远程调试端口。我尝试重新启动 Eclipse 并将网络连接设置为 Direct。它只是一直超时。

Failed to connect to remote VM. Connection timed out.
org.eclipse.jdi.TimeoutException

在 .log 中:

!MESSAGE Failed to connect to remote VM. Connection timed out.
!STACK 0
org.eclipse.jdi.TimeoutException
    at org.eclipse.jdi.internal.connect.SocketTransportService.attach(SocketTransportService.java:162)
    at org.eclipse.jdi.internal.connect.SocketTransportImpl.attach(SocketTransportImpl.java:45)
    at org.eclipse.jdi.internal.connect.SocketAttachingConnectorImpl.attach(SocketAttachingConnectorImpl.java:134)
    at org.eclipse.jdt.internal.launching.SocketAttachConnector.connect(SocketAttachConnector.java:141)
    at org.eclipse.jdt.internal.launching.JavaRemoteApplicationLaunchConfigurationDelegate.launch(JavaRemoteApplicationLaunchConfigurationDelegate.java:84)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

【问题讨论】:

  • 所以你为你的服务器设置了java选项,比如:set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n你试过重启服务器吗?您的问题中没有足够的详细信息来提供帮助...
  • 我有 debugFlag=true。这设置了您提到的所有选项。默认地址是 8453。我使用它,目前正在使用 888。我在服务器日志中看到“正在侦听地址:8888 的传输 dt_socket”,所以它正在侦听。我可以在那个地址远程登录,但是当通过 Eclipse 连接时它会超时。我也在 Windows 上尝试过,结果相同。
  • 这与您多年前提出的问题有何不同:*.com/questions/13960258/…
  • 问题不同。查看错误消息。在这种情况下,连接被拒绝。这里超时了,我设置了 debugFlag。服务器正在侦听该调试端口。
  • “连接被拒绝”在 TCP 中有特定的含义,它与超时无关。你的问题标题说“连接被拒绝”,但你说它超时了?是哪个?

标签: java eclipse weblogic remote-debugging


【解决方案1】:

我提高了调试超时(Windows/Preferences/Java/Debug/Communication/Debugger 超时)并重新启动了管理服务器和托管服务器,其中部署了应用程序并正在侦听调试端口。

【讨论】:

    【解决方案2】:

    最近我遇到了同样的问题,这是我解决后发现的。如果远程服务器端的配置错误,消息应该是“连接被拒绝”而不是“超时”。此外,“超时”也看不到任何wireshark数据包,而“拒绝”给出:

    最后发现“超时”的Eclipse的网络连接是手动配置的。你可以在下面检查这个 窗口->首选项->常规->网络连接。如果它是“手动”(就像我所拥有的),请将其更改为“本机”。

    【讨论】:

      【解决方案3】:

      在属性文件中设置java.property.debug=true可能会对您有所帮助。

      【讨论】:

        【解决方案4】:

        ** 我在 Eclipse 和 STS(Spring Tool Suits)中解决了它的设置: 只需在 IDE(Eclipse 或 Sts)中编辑此配置,将超时时间值增加两个零就足够了。 Windows --> 首选项 --> Java --> 调试 --> 调试器超时:10000t**

        【讨论】: