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 回答