IntelliJ IDEA 之 遠(yuǎn)程調(diào)試篇
我的工作困擾
應(yīng)用部署依賴太多外部環(huán)境攒菠,本地部署困難重重寇僧,問(wèn)題追蹤依賴于日志文件亚情,煩人妄痪!某些功能本機(jī)正常運(yùn)行,提交測(cè)試或者上線卻表現(xiàn)欠佳楞件,煩人衫生!某些功能較為復(fù)雜,正常運(yùn)行需要人為制造大量測(cè)試數(shù)據(jù)土浸,煩人罪针!
重拾小時(shí)候的幸福
多次遇到上述問(wèn)題之后,開(kāi)始變得惶恐和不安黄伊,難道就無(wú)法擺脫這種困境嗎泪酱?難道JVM (Java Virtual Machine)無(wú)法通過(guò)網(wǎng)絡(luò)傳輸完成遠(yuǎn)程調(diào)試嗎?就在我將[遠(yuǎn)程調(diào)試]四個(gè)字填入搜索框之后还最,陽(yáng)光甚好墓阀,我似乎找到了小時(shí)候吃冰棍般的滿足與幸福。
題外話
[大力水手]牌子的冰棍是我最愛(ài)拓轻,就是太貴斯撮,記憶中只吃過(guò)兩次。如果還有機(jī)會(huì)遇到它的話扶叉,指定一次買(mǎi)兩根勿锅,吃一根,再吃一根辜梳。
主要內(nèi)容
+ 演示環(huán)境
+?創(chuàng)建 JavaWeb 項(xiàng)目粱甫,編寫(xiě)測(cè)試代碼
+?修改 Tomcat JVM 啟動(dòng)參數(shù),開(kāi)啟遠(yuǎn)程調(diào)試
+?Idea 創(chuàng)建遠(yuǎn)程調(diào)試鏈接作瞄,啟動(dòng)調(diào)試
+ 附件和注意
演示環(huán)境茶宵,介紹本次遠(yuǎn)程調(diào)試所依賴的軟件環(huán)境,即 IntelliJ IDEA / Apache Tomcat 版本
+ Apache Tomcat :7.0.55
+ IntelliJ IDEA :2018.2.1 (Ultimate Edition)?
+ Windows 10 家庭中文版
創(chuàng)建 JavaWeb 項(xiàng)目宗挥,編寫(xiě)測(cè)試代碼乌庶,創(chuàng)建?JavaWeb 項(xiàng)目,編寫(xiě)調(diào)試代碼契耿。此處將構(gòu)建一個(gè) Servlet 3.0 應(yīng)用瞒大,并編寫(xiě)一個(gè) Filter(過(guò)濾器),該過(guò)濾器的作用僅是用來(lái)設(shè)置程序斷點(diǎn)搪桂。?
修改 Tomcat JVM 啟動(dòng)參數(shù)盯滚,開(kāi)啟遠(yuǎn)程調(diào)試,編輯 Tomcat Catalina.bat 啟動(dòng)文件酗电,添加 JVM 啟動(dòng)參數(shù)魄藕,設(shè)置遠(yuǎn)程調(diào)試服務(wù)模式和端口信息。
Idea??創(chuàng)建遠(yuǎn)程調(diào)試鏈接撵术,啟動(dòng)調(diào)試背率,部署上面構(gòu)建的 JavaWeb 項(xiàng)目 Deuger.war 至 Tomcat 服務(wù)器,并創(chuàng)建遠(yuǎn)程調(diào)試嫩与,設(shè)定遠(yuǎn)程機(jī)器 IP (本文調(diào)試的服務(wù)器在本地寝姿,所以 IP 地址為本地回環(huán)地址) 和調(diào)試端口(Catalina.bat 中設(shè)置的端口號(hào))
遠(yuǎn)程調(diào)試操作,可以有效解決[?我的工作困擾?]中的前兩項(xiàng)划滋,因?yàn)樵?Debug 模式下饵筑,問(wèn)題會(huì)變得顯而易見(jiàn)。而對(duì)于測(cè)試數(shù)據(jù)問(wèn)題古毛,可以通過(guò) Debug 修改任何變量值翻翩,調(diào)整程序運(yùn)行方向。
附件和注意
附件和注意稻薇,包括上述 Gif 圖片中的配置信息和測(cè)試代碼片段嫂冻,若有任何未提及到的內(nèi)容,請(qǐng)聯(lián)系我塞椎。
附件:
Catalina.bat 設(shè)置:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
注意:
不同平臺(tái)下桨仿,配置稍有不同。例如 Linux 下應(yīng)該修改 Catalina.sh 文件案狠;WebLogic服傍,WebSphere 服務(wù)器的配置也有少許不同,但是修改過(guò)程骂铁,配置參數(shù)幾乎一致吹零,若有需要,可自行查閱相關(guān)資料拉庵。當(dāng)然也可以聯(lián)系我灿椅,我們一起討論。本文的介紹的內(nèi)容偏向于實(shí)際操作钞支,更多理論和細(xì)節(jié)內(nèi)容沒(méi)有介紹茫蛹。若你有任何疑惑,當(dāng)然也可以聯(lián)系我烁挟,我們一起討論婴洼。
微信公眾號(hào)
文章內(nèi)容大多數(shù)都是從我的公眾號(hào)搬過(guò)來(lái)的,內(nèi)容可能沒(méi)有公眾號(hào)更新的及時(shí)撼嗓,下面是我的公號(hào)柬采,歡迎來(lái)訪欢唾。