如何在Linux中使用IntelliJ社区(免费)版本在本地调试Tomcat 7.x / 8.x webapp?
我知道这可以与Ultimate Edition一起使用,但有没有办法在Community Edition中本地调试这些应用程序?
历史
如果您使用过IntelliJ Ultimate版,您已经看到可以添加Tomcat配置,您可以在IntelliJ中调试或运行Tomcat容器。 通过一些额外的设置,您可以让IntelliJ社区版本为您做同样的事情。
相关概念
Tomcat JMX
这是Tomcat的远程监视和管理工具。 启用调试不需要JMX相关设置。 虽然它可以通过JConsole用于监视目的( 阅读更多 )。
不同的端口
您的Tomcat实例必须已经启动并且正在运行,因为社区版本能够将自身附加到Tomcat进程。 虽然您的tomcat将在端口上运行(Tomcat默认为8080),但您还需要为调试器设置另一个端口以将其自身附加到正在运行的Tomcat版本(在我们的示例中为9999)。
设置
设置包括您需要对Tomcat进行的更改以及您需要在IntelliJ社区版上进行的配置。
请按照更改顺序进行操作。
Tomcat方面的相关变化
-
如果它在Tomcat bin文件夹中运行,请停止Tomcat:
./shutdown
或./catalina stop
-
将以下行添加到注释的JAVA_OPTS set语句下的catalina.sh文件中:
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
来启用调试。
- 启动Tomcat:
./catalina.sh开始
IntelliJ相关的变化
结果
单击IntelliJ社区版中的调试按钮后,调试部分应在其控制台区域中打开以下行:
连接到目标VM,地址:’localhost:9999’,transport:’socket’
相关的post和链接
- 使用Tomcat(7)和Intellij进行远程调试(尽管对于Window非常有用)
- IntelliJ和Tomcat .. Howto ..? (误导,因为它的旧)
- IntelliJ终极版和社区版设置 (有用但复杂)
- IntelliJ IDEA 14.0.0 Web帮助/运行/调试配置:Tomcat (有点用)
- 使用Tomcat和Intellij Community Edition进行调试 (旧的和不完整的)
AmirHd的回答非常有帮助,但我还有一个问题。 当我更改JAVA_OPTS时,服务器不会像这篇post一样关闭: Tomcat无法关闭我通过更改解决了这个问题
JAVA_OPTS
至
CATALINA_OPTS
对于Windows用户
放
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
在catalina.bat中输入然后在tomcat目录中打开命令行并运行
catalina.bat run
另请注意:我必须选择端口5005,因为我的IntelliJ中配置设置中的默认值不可编辑。