web-dev-qa-db-ja.com

javaリモートデバッグTomcatアプリ:JVMがリッスンしないのはなぜですか?

Tomcat7で実行されているアプリケーションをリモートデバッグしたい。TomcatはWin2008サーバー上のサービスとして実行されています。以下をTomcatのJava構成パネルのJavaオプションに追加しました:-Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=nそして、ワークステーションとこのポートのサーバーでファイアウォールを開きました。しかしワークステーションでIntelliJ9からデバッグしようとすると、エラーメッセージUnable to open debugger port : Java.net.ConnectException "Connection timed out: connect"が表示されます。jvmは標準のSun/Oracle64ビットJVMバージョン1.6.0_27です。

Tomcatにデプロイされたアプリケーション内でManagementFactory.getRuntimeMXBean().getInputArguments()にアクセスし、結果をログファイルに記録することにより、コマンドラインパラメーターが使用されていることを確認しました。ワークステーションとサーバーでWiresharkを介して、TCPポート4711の要求がPCから送信され、サーバーに到着することを確認しましたが、応答がありません。サーバーでnetstat -aを実行しています。このポートでリッスンしているプロセスは表示されないため、Tomcat/JVMがリモートデバッグを開始しないと思います。

12
FrankPl

Tomcatサービス構成パネルのJavaパネル)の別行に-Xdebugと-Xrunjdwp ...を配置する必要があります。

だから持っている:

-Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

動作しませんが:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

意志。

28
Mikkel Løkke