这听起来可能有点太天真了,但我总是很难在服务器启动期间调试 java 类。这是场景:
- Java 应用程序托管在 tomcat 服务器上。
- 假设有一个类在 tomcat 服务器启动时被调用。
- 一旦我停止 tomcat 实例以重新启动,eclipse 调试就会停止,只有在应用程序启动并运行后我才能开始调试。
- 现在如何在 Eclipse 上调试这个类?
感谢您提前提供帮助。
您需要将“等待调试器连接”标志传递给 tomcat。所以启动会等到你连接上,这样你就不会错过断点。
以那些使 tomcat 侦听调试器的 java 选项为例:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8797,server=y,suspend=y
等待调试器连接标志是suspend=y
上述行中的条目。
在启动期间调试类应该没有问题。例如,假设您实现了一个ServletContextListener 类。所属的 contextInitialized 方法在 Tomcat 启动期间被调用(或者更准确地说:当你的应用程序被部署时)。
您可以在此类中设置断点。此时,Tomcat已经完全启动,调试应该没有任何问题。