【问题标题】:debugging java application deployed in tomcat调试部署在tomcat中的java应用
【发布时间】:2011-12-02 09:16:54
【问题描述】:

我有一个部署在 tomcat 中的应用程序。后来我将代码配置为 Eclipse 中的项目。我想通过eclipse连接到tomcat并调试应用程序。 尝试设置远程调试连接会引发错误。我需要在tomcat的某个地方添加任何条目吗?

【问题讨论】:

    标签: java eclipse debugging tomcat


    【解决方案1】:

    首先,您需要在调试模式下运行 Tomcat。最简单的方法是修改启动文件(.bat 或 .sh,取决于您是否是 Windows)。找到包含start 命令的文件附近或末尾的行,并将其更改为jpda start。这将导致 Tomcat 以调试模式启动,侦听端口 8000

    接下来,要通过 Eclipse 连接到此进程,请选择 Run 菜单并选择 Debug Configurations...。在左侧窗格中,选择Remote Java Application 并单击列表上方的New launch configuration 按钮。需要注意的重要设置是 HostPort 字段。主机值必须与 Tomcat 进程的主机名匹配,端口应为8000。您可能还需要在Source 选项卡上添加条目,以确保所有源代码都可用于单步执行。

    【讨论】:

    • Laz,这一切都是我做的。但我仍然以“无法连接到远程虚拟机。连接被拒绝”的错误告终。知道为什么会出现此错误吗?
    • 听起来 Tomcat 出于某种原因没有在听。你最终修改了哪个文件?
    • 终于搞定了。我显式地添加了 JVM OPTS 并提供了默认 8000 以外的端口。能够以这种方式使调试连接正常工作。感谢拉兹的帮助!
    • @user811433 你是如何添加 JVM OPTS 的?您可以只发布您添加了 JVM OPTS 的 startup.bat 吗?
    • 太棒了,它奏效了。 tomcat 启动文件中所需更改的详细信息:confluence.sakaiproject.org/display/BOOT/…
    【解决方案2】:
    1. 创建一个新的 tomcat 服务器

    1. 创建一个新的动态网络项目

    将war导出到tomcat服务器

    1. Tomcat调试配置(重要),先双击tomcat服务器,然后选择“使用Tomcat安装(控制Tomcat安装)”

    1. 添加断点

    1. 在调试模式下运行 tomcat

    1. 在网络浏览器中测试战争

    1. 编辑源路径

    1. 在 Tomcat 中调试源代码

    战争文件可用here

    【讨论】:

    • 这是一个超级有用的答案,只是不是这个问题。我学到了一些东西,但不是这个问题的答案
    【解决方案3】:

    是的,您需要配置 tomcat 以接受远程调试连接。有一个关于如何使用各种 IDE 执行此操作的常见问题解答。

    http://wiki.apache.org/tomcat/FAQ/Developing#Q2

    【讨论】:

    • 感谢您的链接。我在启动日添加了设置和tomcat“在地址监听传输dt_socket:8000”。在此之后,我尝试从 Eclipse 进行远程调试,但它再次失败并出现相同的错误“无法连接到远程 VM。连接被拒绝。”
    【解决方案4】:

    只需更改 startup.bat 中的行(如果您使用的是 Windows)

    来自:

    call "%EXECUTABLE%" start %CMD_LINE_ARGS%
    

    到:

    call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
    

    【讨论】:

      【解决方案5】:
      1. 右键单击要调试的项目并转到“调试为”菜单,然后在列表中单击“调试配置”。

      1. 然后双击左侧菜单列表中的远程 Java 应用程序。浏览您要添加的项目,然后单击应用。

        • 还将侦听端口更改为 7999,然后从本地主机启动 Web 应用程序后,单击同一窗口上的调试按钮。之后任何断点都会被击中。

      【讨论】:

        【解决方案6】:

        使用eclipse设置tomcat调试器的步骤

        安装以下东西:

        java 1.8+

        eclipse EE 版本

        下载tomcat 8+

        打开eclipse并转到servers选项卡并添加一个新服务器(窗口->显示视图->其他->搜索服务器)

        将您的项目标记为动态网络项目(右键单击项目-> 项目方面-> 选择动态网络模块)

        导出战争(文件->导出->搜索战争->选择模块并选择路径)

        运行方式 -> 在服务器上运行

        以调试或运行模式启动 tomcat 服务器

        查看localhost:8080

        【讨论】:

          【解决方案7】:

          调试对我有用。我使用的是在centos 7上配置的tomcat 8。更改2个设置后为我打开了调试端口。

          1. 打开 tomcat/conf/bin/startup.sh 并添加以下行
          export JPDA_ADDRESS=8000
          export JPDA_TRANSPORT=dt_socket
          
          1. 在同一文件startup.sh中,在启动命令前添加jpda
          exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
          

          重启tomcat。 在 Eclipse 中转到 运行>调试配置>远程 java 应用程序>添加主机 ip 和端口(8000) 运行 tomcat 的位置。 就我而言,我也需要通过防火墙打开 8000。

          firewall-cmd --zone=public --permanent --add-port=8000/tcp
          firewall-cmd --reload
          

          【讨论】:

            【解决方案8】:

            除了远程调试之外,如果你在 eclipse 中添加了 tomcat,你可以在 eclipse 中本地调试你的应用程序。 只需启动服务器并右键单击您的应用程序,然后从调试菜单中点击服务器上的调试。 如果您有多模块 maven 项目,请在服务器上调试刚刚显示的带有战争包装的模块。 如果您想调试一个在启动时自行运行的类,例如使用 @PostConstruct 注释的方法,请记住您应该增加服务器超时。 为此,请转到服务器视图并双击 tomcat 并在服务器预览选项卡中增加超时值。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-03-02
              • 2016-10-06
              • 1970-01-01
              • 2014-01-19
              相关资源
              最近更新 更多