繁体   English   中英

如何在 Linux 中使用 IntelliJ 社区(免费)版本在本地调试 Tomcat 7.x/8.x webapp?

[英]How to debug a Tomcat 7.x/8.x webapp locally with IntelliJ Community (free) version in Linux?

我知道这可能与 Ultimate Edition 有关,但是有没有办法在 Community Edition 中本地调试这些应用程序?

历史

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

相关概念

雄猫JMX

这是Tomcat的远程监控管理工具。 启用调试不需要 JMX 相关设置。 虽然它对于通过 JConsole 进行监控很有用( 阅读更多)。

不同的端口

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

设置

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

请按照更改顺序。

Tomcat端相关变化

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

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

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

提示:我使用的是JAVA_OPTS而不是CATALINA_OPTS因为 catalina.sh 中的注释表明最好使用JAVA_OPTS 但是,可以以类似的方式使用CATALINA_OPTS来启用调试。

  1. 启动Tomcat:

./catalina.sh 开始

IntelliJ 相关变化

在此处输入图片说明

结果

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

连接目标VM,地址:'localhost:9999',传输:'socket'

相关帖子和链接

  1. 使用 Tomcat (7) 和 Intellij 进行远程调试(虽然仅对 Window 非常有用)
  2. IntelliJ 和 Tomcat ......如何......? (误导,因为它是旧的)
  3. IntelliJ 终极版和社区版设置(有用但过于复杂)
  4. IntelliJ IDEA 14.0.0 Web 帮助/运行/调试配置:Tomcat (有点有用)
  5. 使用 Tomcat 和 Intellij 社区版进行调试(旧的和不完整的)

AmirHd 的回答很有帮助,但我还有一个问题。 当我更改 JAVA_OPTS 服务器时不会像这篇文章中那样关闭: Tomcat failed to shutdown我通过更改解决了这个问题

JAVA_OPTS

CATALINA_OPTS

@AmirHd 的回答非常有帮助。 我使用的是 Idea Community 版本,您实际上根本不需要安装任何 Tomcat 插件。

  1. 在位于 Tomcat bin 目录中的catalina.sh (在 Linux 中)文件的顶部添加以下行。
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
  1. 转到创意Run菜单。 选择Edit Configuration选项。
  2. 单击+号并从下拉列表中选择Remote
  3. 对于该远程调试器,请配置 Tomcat 调试主机和端口。 (Localhost, 5005) 如下所示并保存。 在此处输入图片说明
    1. 启动你的Tomcat。 (您将在下面的日志行中看到它处于调试模式。)
Listening for transport dt_socket at address: 5005
  1. 通过按Alt + Shift + F9Run -> debug选项,使用您的 Idea 连接到该端口。

根本没有插件。

对于 Windows 用户

set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

在 catalina.bat 中行然后在 tomcat 目录中打开命令行并运行

catalina.bat run

另请注意:我必须选择端口 5005,因为 IntelliJ 中配置设置中的默认端口不可编辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM