我的微信公衆號
我的工作困擾
應用部署依賴太多外部環境,本地部署困難重重,問題追蹤依賴於日誌文件,煩人!
某些功能本機正常運行,提交測試或者上線卻表現欠佳,煩人!
某些功能較爲複雜,正常運行需要人爲製造大量測試數據,煩人!
重拾小時候的幸福
多次遇到上述問題之後,開始變得惶恐和不安,難道就無法擺脫這種困境嗎?難道JVM (Java Virtual Machine)無法通過網絡傳輸完成遠程調試嗎?就在我將[遠程調試]四個字填入搜索框之後,陽光甚好,我似乎找到了小時候吃冰棍般的滿足與幸福。
題外話
[大力水手]牌子的冰棍是我最愛,就是太貴,記憶中只吃過兩次。如果還有機會遇到它的話,指定一次買兩根,吃一根,再吃一根。
主要內容
+ 演示環境
+ 創建 JavaWeb 項目,編寫測試代碼
+ 修改 Tomcat JVM 啓動參數,開啓遠程調試
+ Idea 創建遠程調試鏈接,啓動調試
+ 附件和注意
演 示環境 ,介紹本次遠程調試所依賴的軟件環境,即 IntelliJ IDEA / Apache Tomcat 版本。
+ Apache Tomcat : 7.0.55
+ IntelliJ IDEA :2018.2.1 (Ultimate Edition)
+ Windows 10 家庭中文版
創 建 JavaWeb 項目
創 建 JavaWeb 項目,編寫測試代碼,創建 JavaWeb 項目,編寫調試代碼。此處將構建一個 Servlet 3.0 應用,並編寫一個 Filter(過濾器),該過濾器的作用僅是用來設置程序斷點。
修 改 Tomcat JVM 啓動參數
修 改 Tomcat JVM 啓動參數,開啓遠程調試,編輯 Tomcat Catalina.bat 啓動文件,添加 JVM 啓動參數,設置遠程調試服務模式和端口信息。
Idea 創建遠程調試鏈接
Idea 創建遠程調試鏈接,啓動調試,部署上面構建的 JavaWeb 項目 Deuger.war 至 Tomcat 服務器,並創建遠程調試,設定遠程機器 IP (本文調試的服務器在本地,所以 IP 地址爲本地迴環地址) 和調試端口(Catalina.bat 中設置的端口號)。
遠程調試操作
遠程調試操作可以有效解決[ 我的工作困擾 ]中的前兩項,因爲在 Debug 模式下,問題會變得顯而易見。而對於測試數據問題,可以通過 Debug 修改任何變量值,調整程序運行方向
附件和注意,包括上述 Gif 圖片中的配置信息和測試代碼片段,若有任何未提及到的內容,請聯繫我。
附件
Catalina.bat 設置
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
注意
不同平臺下,配置稍有不同。例如 Linux 下應該修改 Catalina.sh 文件;WebLogic,WebSphere 服務器的配置也有少許不同,但是修改過程,配置參數幾乎一致,若有需要,可自行查閱相關資料。當然也可以聯繫我,我們一起討論。本文的介紹的內容偏向於實際操作,更多理論和細節內容沒有介紹。若你有任何疑惑,當然也可以聯繫我,我們一起討論。