java - 在eclipse中调试tomcat服务器实例

标签 java eclipse debugging tomcat spring-mvc

我在eclipse中有如下配置

<醇>
  • 从服务器 View 创建了一个 tomcat 7.0 服务器实例。
  • 创建了一个示例 Web 应用程序并通过 maven-tomcat-plugin 部署在服务器中并在浏览器中对其进行了测试(正确启动服务器 从服务器 View 中单击服务器并选择开始 )
  • 尝试使用 JPDA 选项在创建的服务器实例中配置远程调试设置,我在服务器设置中添加了 env 变量。
  • 当我像以前一样从 eclipse 启动服务器时,无法将调试器连接到服务器。
  • 但是当我使用命令提示符直接从安装目录启动时它无缝连接

    catlina.bat jpda start

  • 之后我尝试了这个我启动了服务器实例(通过从服务器 View 中右键单击服务器并选择 DEBUG 模式启动服务器)
  • 我得到了代码中的断点,甚至是热代码替换 工作!!!
  • 谁能解释一下?

    1. 当我尝试使用 jpda 选项对 eclipse 中创建的服务器实例进行远程调试时出了什么问题?
    2. 调试选项和热代码替换如何与服务器实例一起工作?这是远程调试还是其他什么?你能解释一下吗?

    最佳答案

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

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

    我不认为您可以覆盖 eclipse 插件为您设置的 JPDA 参数,这就是第 1) 点中它不起作用的原因。对于 2),它通过远程调试工作,通过自动设置参数并在服务器启动后连接远程调试器而变得透明。

    关于java - 在eclipse中调试tomcat服务器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161197/

    相关文章:

    c# - 在 Debug.Assert 语句中插入行号

    java - 你能重写一个父类(super class)的方法并且……

    java - 如何从数组中检索对象属性信息

    c++ - Eclipse C++ 上 vector 实例化的无效模板参数

    java - 单击按钮后android应用崩溃的原因

    android - 是否有 Android 工具可以找到正在运行的应用程序的布局名称?

    java - 如何将数组列表从一个 servlet 传递到另一个 servlet

    java - 正则表达式匹配除两个括号之间的内容之外的所有内容

    java - 在 Eclipse 中运行快速代码测试

    android - 在 logcat 中显示额外的 Intent