簡體   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