7

当我的应用程序运行时。我收到一条消息说:

Ping: Timed out waiting for signal from JVM.
The JVM was launched with debug options so this may be because the JVM
is currently suspended by a debugger.  Any future timeouts during this
JVM invocation will be silently ignored.

这意味着什么?它似乎会阻止来自外部的任何网络请求?因为当我向它上传文件时,它失败了。帮我 。

4

3 回答 3

4

在调试代码时,通常会在其中设置breakpoints以在某些时候中断程序的执行。当 JVM 遇到这样的断点时,它会暂停执行,并等待调试器更进一步(进入/跳过/退出/等)。

如果您的流程附加了一个 UI 调试器(如 Eclipse),您可以从那里控制执行流程,观察变量值等。

您看到的消息简单地说,您得到的超时可能只是这种情况的结果,并由 Java Service Wrapper 显示,如下所述

如果wrapper.java.command属性设置为“jdb”或“jdb.exe”,或者wrapper.java.additional.<n>属性之一设置为“ ,则 Wrapper 将确定 JVM 正在使用调试器-Xdebug”。

因此,您似乎正在调试模式下使用 Java Service Wrapper 启动您的应用程序,并且当某些超时到期时,它会通过附加消息警告您。

于 2012-09-18T09:36:41.873 回答
1

JVM 调试选项允许您连接到 JVM 并逐步执行代码(Google java 远程调试以获取更多信息)。基本上这意味着可以远程暂停和控制代码执行(一次执行一条语句,检查变量值等)。虽然这非常有用,但它当然会干扰软件的正常运行。如果您不打算在调试模式下运行 JVM,请尝试找出设置它并删除它(它可能在 JAVA_OPTS(环境变量)中,或者它可能在您的启动脚本中或您使用的任何东西中启动 JVM。您正在寻找一个类似于 . 的字符串-Xdebug -Xrunjdwp:server=y, transport=dt_socket,address=#number#, suspend=n。删除所有这些,将其注释掉,或者任何适合设置位置的内容,然后重新启动 JVM。

于 2012-09-18T09:35:15.777 回答
1

这意味着什么?

该消息来自Java Service Wrapper。包装器尝试“ping”JVM 并没有得到响应。这很可能意味着您正在调试 JVM 并已将其暂停。当 JVM 暂停时,它无法响应任何类型的外部请求。所有线程都被冻结...

它似乎会阻止来自外部的任何网络请求?因为当我向它上传文件时,它失败了。帮我

是的,如果您暂停了 JVM,它会这样做。取消暂停 JVM,它应该会再次开始响应。

请注意,如果您在调试模式下从 IDE 启动应用程序,JVM 可能会以暂停状态启动……取决于您的 IDE 设置/启动配置。


我能想到的唯一其他解释是,您的网络或虚拟网络配置(例如数据包过滤器或虚拟网络路由)可能存在问题,导致网络数据包大量丢失。

于 2012-09-18T10:17:21.530 回答