gpt4 book ai didi

java - 使用 IntelliJ 远程调试 Tomcat 7

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:48 25 4
gpt4 key购买 nike

我有一个在 10.0.1.62:8080/xxx 上运行的网络应用程序。我想通过 IntelliJ IDEA 远程调试。我设置了 JAVA_OPTS = -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

在 10.0.1.62 机器(Ubuntu 上的 Tomcat7)上,当我点击远程调试按钮时,IDE 给出了一条信息消息:

Connected to the target VM, address: '10.0.1.62:8000', transport: 'socket'

比我打10.0.1.62:8080/xxx。尽管我收到此成功消息,但未命中断点。我错过了什么?

最佳答案

首先,请引用以下问题和答案仔细检查您的设置:Remote Debugging in IntelliJ Tomcat

从您的问题来看,您似乎已经执行了这些步骤。过去还有一些其他配置问题导致我在远程 tomcat 调试方面出现问题,我将分享这些问题并希望它有所帮助。

  1. 确保您在 IntelliJ 上启动了正确的远程调试过程。 Remote Debug
  2. 如果您的主机上运行着多个 Tomcat 服务器,请确保您连接到正确的 Tomcat 实例。调试端口 8000 可能已被使用。我使用任意端口 15019 或其他一些尚未使用的端口号。确保使用的端口在 Tomcat 和 IntelliJ 之间匹配。
  3. 根据您在 Tomcat 上设置远程调试的方式,它可能无法正常关闭而让旧实例继续运行。在 catalina.sh 的顶部添加调试 Hook 将导致 shutdown.sh 脚本失败,因为您的调试端口已经绑定(bind)到 Tomcat 服务器。而是将它放在 start if 语句中:

    elif [ "$1"= "start"] ;然后
    JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=15019,suspend=n,server=y"

修复此问题后,您可以使用 ./shutdown.sh 成功关闭 Tomcat,并仍然使用 ./startup.sh 开始调试

  1. 确保您在 Tomcat 上干净部署了您的应用程序。您的清理过程可能需要变化,但总体思路如下:

    关闭 Tomcat,然后确认它不再运行。
    从您的 tomcat webapps 目录中删除已部署的 war 文件和相应的分解版本。
    删除工作目录和临时目录的内容。
    部署并验证您最近构建的 war 文件。
    启动 Tomcat。

创建一个脚本来执行此操作将节省时间。

  1. 如果一切都失败了,添加一个调试日志来仔细检查代码,断点首先被调用。

我敢肯定还有 20 件其他事情可能会出错。随意添加想法。

关于java - 使用 IntelliJ 远程调试 Tomcat 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com