遠程服務器端
服務器端配置eclipse調試器監聽端口,有兩種方式,任選其一
第一種方式:
環境變量
export JPDA_ADDRESS=9999
啓動tomcat
使用sh catalina.sh jpda start啓動
注意:不要用startup.sh
通過這條命令啓動tomcat,會監聽JPDA_ADDRESS設置的端口,等待調試器連接。
如果不配置JPDA_ADDRESS,默認監聽8000端口
第二種方式:
配置$tomcat_home/bin/catalina.sh
加上如下一行
說明:server=y 是指目標應用程序作爲服務監聽將要連接的遠程調試器(常用);
|
啓動tomcat
通過ps -aux|grep tomcat查看啓動的tomcat進程,剛纔配置的-Xdebug等選項出現在進程信息中,證明配置成功
本機調試端
調試器配置
在本地eclipse中點擊debug按鈕,選擇Debug Configurations….,如下圖
點擊選項後,彈出一個窗口,雙擊左側Remote Java Application,如下圖
Name:自定義,任意名稱
Project:本機eclipse中的WEB項目,與遠端服務器上部署的WEB項目一致
Host:被調試的遠端服務器ip
Port: 遠端服務器中環境變量JPDA_ADDRESS的值
配置完成後點擊Apply,隨後點擊Debug,eclipse窗口右下角出現
這裏ConnectionType我們選擇的是Standard(Socket Attach)方式調試
等待這個進度條跑完,直到consle的紅色按鈕變成灰色,此時已經完成了服務器端調試準備
測試調試
源碼打斷點
在本機eclipse源碼中找到一處要調試的地方,打上斷點
比如,我在一處webservice的service入口類中某一方法testAdd中加入斷點
測試接口,進入斷點
比如,我測試自己的WebService接口
|
執行單元測試,調用服務器端WebService服務的testAdd方法,傳入value值
此時eclipse進入debug狀態,跳到剛纔打斷點的51行,
這樣就可以像本機一樣F6,F5進行跟蹤和調試遠程程序了
注意:服務器端配置的環境變量JPDA_ADDRESS雖然是端口,但是隻是調試器監聽端口,但是與tomcat中部署項目運行的端口是不一樣的,web項目運行端口是在tomcat_home/conf/server.xml中進行配置的,不要混淆
至此完整的eclipse遠程調試步驟已經描述清楚
總結
Standard(Socket Attach)方式進行服務器端監聽的優缺點:
先啓動遠程Java程序 然後 啓動Eclipse遠程調試,然後可以正常調試系統
缺點 :只有java程序啓動後才能進行調試,無法調試java程序的啓動過程,如果要全程調試需要使用另外一種方式,我會總結成另一篇文章
優點 :可以隨時連接到遠程java程序進行調試