Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动时调试java应用程序_Java_Eclipse_Debugging - Fatal编程技术网

启动时调试java应用程序

启动时调试java应用程序,java,eclipse,debugging,Java,Eclipse,Debugging,这听起来可能有点幼稚,但在服务器启动期间,我总是很难调试java类。以下是场景: java应用程序托管在tomcat服务器上 假设有一个类在tomcat服务器启动时被调用 一旦我停止tomcat实例以重新启动,eclipse调试就会停止,并且我只能在应用程序启动并运行后启动调试 现在我如何在eclipse上调试这个类 提前感谢您的帮助。在启动过程中调试类应该可以正常工作。例如,假设您实现了一个。所属contextInitialized方法在Tomcat启动期间调用(或者更准确地说,在部署应用

这听起来可能有点幼稚,但在服务器启动期间,我总是很难调试java类。以下是场景:

  • java应用程序托管在tomcat服务器上
  • 假设有一个类在tomcat服务器启动时被调用
  • 一旦我停止tomcat实例以重新启动,eclipse调试就会停止,并且我只能在应用程序启动并运行后启动调试
  • 现在我如何在eclipse上调试这个类

提前感谢您的帮助。

在启动过程中调试类应该可以正常工作。例如,假设您实现了一个。所属contextInitialized方法在Tomcat启动期间调用(或者更准确地说,在部署应用程序时)

您可以在此类中设置断点。此时,Tomcat已经完全启动,调试应该没有任何问题。

您需要将“等待调试器连接”标志传递给Tomcat。因此,启动将等待连接完成,因此不会错过断点

以使tomcat侦听调试器的java选项为例:

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

等待调试器连接标志是上行中的
suspend=y
项。

在类中要调试的位置放置一个断点,并确保以调试模式启动服务器。我也会这样做。但是为了在eclipse上启动调试,服务器应该已经启动并运行,对吗?在此之前,当我单击调试符号时,它会抛出一个错误。当它开始工作的时候,类已经被调用了,我错过了它。嘿,Sebi,我当然可以设置断点。但是为了让断点工作,eclipse上的调试应该运行。。。我的问题是,在服务器完全启动并运行之前,调试不会在我的eclipse上运行。请使用远程调试尝试eclipse未启动的外部服务器。您可以在服务器上部署应用程序之前启动该服务器。之后,当您已经连接到服务器时,通过eclipse部署应用程序。如果断点仍然被忽略,请先尝试一个简单的测试应用程序。我通常不会通过eclipse启动服务器。我启动tomcat服务器(当然是自定义启动脚本),然后使用localhost和调试端口号钩住eclipse调试选项。