如何在Linux中使用IntelliJ Community(免费)版本在本地调试Tomcat 7.x / 8.x web应用程序?相关概念设置

2022-09-01 13:14:07

我知道这可以用终极版来做,但是有没有办法在社区版中本地调试这些应用程序?


答案 1

历史

如果您使用过IntelliJ Ultimate版本,您已经看到可以添加一个Tomcat配置,您可以在其中从IntelliJ中调试或运行Tomcat容器。可以通过一些额外的设置来让您的IntelliJ社区版本为您做同样的事情。

相关概念

雄猫 JMX

这是Tomcat的远程监控和管理工具。不需要 JMX 相关设置即可启用调试。尽管它可以通过JConsole用于监视目的(阅读更多)。

不同的端口

您的 Tomcat 实例必须已经启动并运行,社区版本才能将自身附加到 Tomcat 进程。虽然您的tomcat将在端口上运行(Tomcat默认为8080),但您还需要为调试器设置另一个端口,以将自身附加到正在运行的Tomcat版本(在我们的示例中为9999)。

设置

设置包括您需要对Tomcat进行的更改以及您需要在IntelliJ社区版上进行的配置。

请遵循更改中的顺序。

雄猫侧相关变化

  1. 如果 Tomcat 在 Tomcat bin 文件夹中运行,请通过以下方式停止它:或./shutdown./catalina stop

  2. 将以下行添加到带注释的 JAVA_OPTS set 语句下的 catalina.sh 文件中:

    JAVA_OPTS=“$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999”

提示:我没有使用,因为 catalina.sh 中的评论建议最好使用。但是,可以以类似的方式使用以启用调试。JAVA_OPTSCATALINA_OPTSJAVA_OPTSCATALINA_OPTS

  1. 启动雄猫:

./catalina.sh 开始

IntelliJ 相关的更改

enter image description here

结果

单击 IntelliJ 社区版中的调试按钮后,调试部分应在其控制台区域中打开,并显示以下行:

已连接到目标 VM,地址:“本地主机:9999”,传输:“套接字”

相关帖子和链接

  1. 使用Tomcat(7)和Intellij进行远程调试(尽管仅对Windows非常有用)
  2. IntelliJ和Tomcat..如何..?(误导,因为它很旧)
  3. IntelliJ 终极版和社区版设置(有用但过于复杂)
  4. IntelliJ IDEA 14.0.0 Web Help/Run/Debug Configuration: Tomcat (有些用處)
  5. 使用 Tomcat 和 Intellij Community Edition 进行调试(旧版和不完整版)

答案 2

AmirHd的答案非常有帮助,但我还有一个问题。当我更改JAVA_OPTS服务器不会像这篇文章中那样关闭:Tomcat无法关闭,我通过更改来解决此问题

JAVA_OPTS

CATALINA_OPTS

推荐