一尘不染

在Eclipse中调试tomcat服务器实例

tomcat

我在Eclipse中有以下配置

  1. 从服务器视图创建了一个tomcat 7.0服务器实例。
  2. 创建了一个示例Web应用程序,并通过maven-tomcat-plugin部署在服务器中,并在浏览器中对其进行了测试(通过从服务器视图中右键单击服务器并选择启动来启动服务器)
  3. 试图使用JPDA选项在创建的服务器实例中配置远程调试设置,我在服务器设置中添加了env变量。
  4. 当我像以前一样从Eclipse启动服务器时,无法将调试器连接到服务器。
  5. 但是当我使用命令提示符从安装目录直接启动时,它无缝连接

catlina.bat jpda开始

  1. 之后,我尝试通过以下方式启动服务器实例(通过从服务器视图中右键单击服务器并选择DEBUG模式来启动服务器)
  2. 我在代码中得到了断点,甚至可以替换热代码!!!

谁能解释以下内容?

  1. 当我在Eclipse中使用创建的服务器实例尝试jpda选项进行远程调试时,出了什么问题?
  2. 服务器实例如何使用调试选项和热代码替换?是远程调试还是其他?您可以对此进行解释吗?

阅读 329

收藏
2020-06-16

共1个答案

一尘不染

eclipse tomcat插件在运行时会生成一个单独的JVM,您可以在Windows任务列表中,使用unix之类的系统中的ps或visualVM来确认。

该VM是在调试模式下启动的,其插件本身设置了JPDA参数,这就是调试机制的工作原理,它基于JVM功能。您可以使用JDK附带的可视VM确认使用了哪些jpda参数。

我认为您无法覆盖eclipse插件为您设置的JPDA参数,这就是为什么在第1点中它无效的原因。对于2),它通过自动设置参数并在服务器启动后连接远程调试器而使远程调试透明化。

2020-06-16