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

时间:2014-12-26 10:38:43

标签: java tomcat intellij-idea

我知道这可以与Ultimate Edition一起使用,但有没有办法在Community Edition中本地调试这些应用程序?

4 个答案:

答案 0 :(得分:29)

历史

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

相关概念

Tomcat JMX

这是Tomcat的远程监控和管理工具。启用调试不需要JMX相关设置。虽然它可以通过JConsole(read more)用于监视目的。

不同的端口

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

设置

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

  

请按照更改中的顺序进行操作。

Tomcat方面的相关变化

  1. 如果Tomcat正在Tomcat bin文件夹中运行,请停止它: ./shutdown./catalina stop

  2. 在注释的JAVA_OPTS集声明下将以下行添加到catalina.sh文件中:

      

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

  3.   

    提示:我使用JAVA_OPTS而不是CATALINA_OPTS作为catalina.sh中的评论建议最好使用JAVA_OPTS。但是,可以以类似的方式使用CATALINA_OPTS来启用调试。

    1. 启动Tomcat:
    2.   

      ./ catalina.sh start

      IntelliJ相关更改

      enter image description here

      结果

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

        

      连接到目标虚拟机,地址:' localhost:9999',传输:' socket'

      相关帖子和链接

      1. Remote debugging with Tomcat (7) and Intellij(仅对Window非常有用)
      2. IntelliJ and Tomcat.. Howto..?(误导,因为它已经老了)
      3. IntelliJ ultimate and community version setups(有帮助,但过于复杂)
      4. IntelliJ IDEA 14.0.0 Web Help/Run/Debug Configuration: Tomcat(有点用)
      5. Debugging with Tomcat and Intellij Community Edition(旧的和不完整的)

答案 1 :(得分:1)

AmirHd的回答非常有帮助,但我还有一个问题。当我更改JAVA_OPTS时,服务器不会在此帖子中关闭: https://docs.djangoproject.com/en/1.11/intro/tutorial01/ 我通过改变

解决了这个问题
JAVA_OPTS

CATALINA_OPTS

答案 2 :(得分:0)

对于Windows用户

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

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

catalina.bat run

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

答案 3 :(得分:0)

@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),如下所示并保存。 enter image description here
    1. 启动Tomcat。 (您会在下面的日志行中看到它处于调试模式。)
Listening for transport dt_socket at address: 5005
  1. 通过按Alt + Shift + F9Run -> debug选项使用您的Idea连接到该端口。

完全没有插件。