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並開啓遠程調試的端口html

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

服務器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…「:vim

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

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

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

若是看到下圖則表明成功了intellij-idea

拓展

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

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

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

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

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

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

參考連接

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


本文做者:夏日淺笑、
原文地址:http://www.javashuo.com/article/p-anujjfxr-eq.html 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

相關文章
相關標籤/搜索