远程调试:无法连接到远程虚拟机。连接超时。

10

我曾经在我的Ubuntu虚拟机上使用Eclipse进行远程调试,可以连接到远程WebLogic应用程序,但后来出现了问题。我已经在远程服务器上打开了调试功能。从我的虚拟机上,我可以通过telnet连接到远程调试端口。我尝试过重启Eclipse并将网络连接设置为直接连接,但它仍然超时。

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。你尝试过重新启动服务器吗?你的问题中缺少足够的细节来提供帮助... - Display Name is missing
我有debugFlag=true。这将设置你提到的所有选项。默认地址是8453。我使用了它,目前正在使用888。我在服务器日志中看到“Listening for transport dt_socket at address: 8888”,所以它正在侦听。我可以在该地址上通过telnet连接,但是当通过Eclipse连接时会超时。我也尝试了从Windows连接,结果相同。 - user994165
@Kenster,哦,最后一次失败肯定是连接被拒绝了,我已经复制和粘贴了。我已经重新启动了,但仍然出现超时。我更新了标题,并在描述中粘贴了完整的错误信息。 - user994165
@Kenster,我正在使用Virtualbox的Ubuntu,但在Windows中也遇到了相同的错误。在这两个环境中,我都能够访问WebLogic管理控制台和应用程序,还可以telnet到服务器的调试端口。 - user994165
所以你正在Virtualbox Ubuntu客户机中运行JVM,并且在主机上运行eclipse尝试连接到JVM的调试端口?是这样吗?客户机有哪些网络接口,它们在Vbox中如何配置?例如,它们是NAT、仅主机网络还是其他什么?你从eclipse尝试连接的实际IP地址是什么? - Kenster
显示剩余5条评论
5个回答

13

我延长了调试超时时间(Windows/Preferences/Java/Debug/Communication/Debugger timeout),并重新启动了应用程序部署和监听调试端口的管理服务器和托管服务器。


3

我最近遇到了同样的问题,解决后发现如下情况。如果远程服务器端配置错误,消息应该是“连接被拒绝”,而不是“超时”。此外,“超时”也没有看到任何Wireshark数据包,而“拒绝”则会产生以下情况:enter image description here

最后我发现“超时”的Eclipse网络连接是手动配置的。您可以在窗口->首选项->常规->网络连接下检查此设置。如果它是“手动”(像我遇到的情况),请将其更改为“本机”。


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

0

我在Eclipse和STS(Spring Tool Suits)中解决了这个问题: 只需在IDE(Eclipse或Sts)中编辑此配置,将超时时间值增加两个零即可。 enter image description here Windows --> Preferences --> Java --> Debug --> Debugger timeout: 10000t


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接