IntelliJ IDEA遠程調試(Debug)Tomcat

爲什麼需要這麼做?

  • 解決 在我本地是好的啊 這個世界性難題~
  • 測試環境碰到問題,直接連上debug,不用再測試本地,再查看測試環境日誌
  • 遇到一些詭異的問題,日誌是看不出端倪的
  • 調試一些只能在測試環境執行的流程,如:調用微信/支付寶付款

服務器Tomcat配置

  • 以 Linux 環境爲例
  • Tomcat 安裝在: /usr/program/tomcat7
  • Tomcat 的執行程序:/usr/program/tomcat7/bin/catalina.sh
  • 編輯 Tomcat 執行程序: vim /usr/program/tomcat7/bin/catalina.sh
    • 查找Tomcat的debug端口:/JPDA_ADDRESS=
    • 默認的debug端口是8000,我這裏是配成了5005
    • 在bin目錄下執行命令 sh catalina.sh jpda start ,可以啓動tomcat並開啓遠程調試的端口

      其實官方教程是在文件的開頭加上 export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005' ,但是我不想讓其他同事也是以debug模式啓動。

服務器Jetty配置

  • 以 Linux 環境爲例
  • Tomcat 安裝在 /usr/program/tomcat7
  • jetty 不像Tomcat那樣需要安裝,只要有jetty的jar包就可以啓動我們想要啓動的應用
  • 在啓動應用的時候加入 agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 就像這樣:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &

在IntelliJ Idea中遠程連接tomcat

點擊下圖紅框中的”run”按鈕,在下拉菜單中點擊“Edit Configurations…“:

在彈出的菜單中點擊“+“,再點擊“Remote“:

如下圖,修改Port框中的數字爲之前設置的Tomcatdebug端口號(默認8000),如果tomcat部署在其他機器上,請在Host輸入框中填入tomcat所在機器的ip:

設置完畢後點擊下面的“ok“,回到主窗口後,點擊下圖紅框中的下拉菜單,選中我們剛纔新建的debug配置項,再點擊小蟲按鈕,就能連接到tomcat的debug端口了:

如果看到下圖則代表成功了

拓展

  • 標註 1:運行遠程 JVM 的命令行參數;
  • 標註 2:傳輸方式,默認爲Socket;
  • 標註 3:調試模式,默認爲Attach;
  • 標註 4:服務器 IP 地址,默認爲localhost,需要修改爲目標服務器的真實 IP 地址;
  • 標註 5:服務器端口號,默認爲5005,需要修改爲目標服務器的真實端口號;
  • 標註 6:搜索資源是使用的環境變量,默認爲,即整個項目。

如上圖所示,其中 標註 2 和 標註 3 又分別有兩種分類,

標註 2:傳輸方式,默認爲Socket; 

Socket:macOS 及 Linux 系統使用此種傳輸方式;
Shared memory: Windows 系統使用此種傳輸方式。

標註 3:調試模式,默認爲Attach; 

Attach:此種模式下,調試服務端(被調試遠程運行的機器)啓動一個端口等待我們(調試客戶端)去連接;
Listen: 此種模式下,是我們(調試客戶端)去監聽一個端口,當調試服務端準備好了,就會進行連接。

參考鏈接

本文爲博主對幾篇 博文|教程 的總結,部分文字爲直接複製。以下爲原文鏈接:


本文作者:夏日淺笑、
原文地址:https://www.cnblogs.com/summertime-wu/p/9484420.html
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章