6

少し単純すぎるように聞こえるかもしれませんが、サーバーの起動時に Java クラスをデバッグするのにいつも苦労していました。シナリオは次のとおりです。

  • Java アプリケーションは、Tomcat サーバーでホストされます。
  • tomcat サーバーの起動中に呼び出されるクラスがあるとします。
  • 再起動のために tomcat インスタンスを停止するとすぐに、Eclipse のデバッグが停止し、アプリケーションが起動して実行されるまでデバッグを開始できません。
  • Eclipseでこのクラスをデバッグするにはどうすればよいですか?

事前にご協力いただきありがとうございます。

4

2 に答える 2

16

「デバッガーが接続するのを待つ」フラグを tomcat に渡す必要があります。したがって、スタートアップは接続されるまで待機するため、ブレークポイントを見逃すことはありません。

たとえば、Tomcat にデバッガーをリッスンさせる Java オプションを考えてみましょう。

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8797,server=y,suspend=y

デバッガー接続フラグの待機はsuspend=y、上記の行のエントリです。

于 2012-09-28T07:38:10.437 に答える
2

起動時のクラスのデバッグは問題なく動作するはずです。たとえば、ServletContextListener クラスを実装するとします。所属する contextInitialized メソッドは、Tomcat の起動中 (より正確には、アプリのデプロイ中) に呼び出されます。

このクラスにブレークポイントを設定できます。その時点で、Tomcat はすでに完全に起動しており、デバッグに問題はないはずです。

于 2012-09-24T11:32:41.840 に答える