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.

どういう意味ですか?外部からのWebリクエストをブロックするようですか?ファイルをアップロードすると失敗したからです。助けて 。

4

3 に答える 3

4

コードをデバッグするときは、通常breakpoints、ある時点でプログラムの実行を中断するためにコードを設定します。JVMがそのようなブレークポイントに遭遇すると、実行を一時停止し、デバッガーがさらに進むのを待ちます(ステップイン/ステップオーバー/ステップアウトなど)。

プロセスにUIデバッガー(Eclipseなど)が接続されている場合は、そこから実行フローを制御したり、変数値を監視したりできます。

表示されているメッセージは、取得したタイムアウトが単にそのような状況の結果である可能性があることを示しており、ここで説明するようにJavaServiceWrapperによって表示されます。

ラッパーは、 wrapper.java.commandプロパティが「jdb」または「jdb.exe」に設定されている場合、またはwrapper.java.additional。<n>プロパティの1つが「」に設定されている場合、JVMがデバッガーを使用していると判断します。 -Xdebug」。

したがって、デバッグモードでJava Service Wrapperを使用してアプリを起動しているようです。タイムアウトの一部が期限切れになると、添付のメッセージで警告が表示されます。

于 2012-09-18T09:36:41.873 に答える
1

JVMデバッグオプションを使用すると、JVMに接続して、コードをステップ実行できます(詳細については、Google Javaリモートデバッグを参照してください)。基本的に、これは、コードの実行をリモートで一時停止して制御できることを意味します(一度に1つのステートメントを実行したり、変数値を確認したりするなど)。これは非常に便利ですが、もちろんソフトウェアの通常の動作を妨げる可能性があります。JVMをデバッグモードで実行する予定がない場合は、JVMを設定しているものを見つけて削除してみてください(JAVA_OPTS(環境変数)にあるか、起動スクリプトまたは使用するものに含まれている可能性があります)。 JVMを起動します。次のような文字列を探しています-Xdebug -Xrunjdwp:server=y, transport=dt_socket,address=#number#, suspend=n。これをすべて削除するか、コメントアウトするか、設定場所に適したものをすべて削除してから、JVMを再起動します。

于 2012-09-18T09:35:15.777 に答える
1

どういう意味ですか?

メッセージはJavaServiceWrapperから送信されます。ラッパーがJVMに「ping」を実行しようとしましたが、応答がありません。ほとんどの場合、JVMをデバッグしていて、一時停止していることを意味します。JVMが一時停止している間は、いかなる種類の外部要求にも応答できません。すべてのスレッドがフリーズします...

外部からのWebリクエストをブロックするようですか?ファイルをアップロードすると失敗したからです。助けて

はい、JVMを一時停止した場合はそうなります。JVMの一時停止を解除すると、JVMは再び応答を開始するはずです。

IDEからデバッグモードでアプリケーションを起動すると、IDEの設定/起動構成によっては、JVMが一時停止状態で起動する場合があることに注意してください。


私が考えることができる他の唯一の説明は、ネットワークまたは仮想ネットワーク構成(パケットフィルターや仮想ネットワークルーティングなど)に問題があり、ネットワークパケットの大規模な損失を引き起こしている可能性があるということです。

于 2012-09-18T10:17:21.530 に答える