1、開發環境介紹:
目前dev用resin 作為服務容器。服務調用之間過於復雜,要進行本地代碼調試過於復雜,甚至無法進行。但是可以通過jvm的遠程代碼調試來達到本地代碼調試的目的,步驟如下。
2、resin4(dev環境版本為resin4) 環境遠程服務搭建步驟:
//1.確定服務器上resin的版本。進入resin服務的bin目錄;例如pk服務的目錄是:/data/app/resin_pk/bin/ ,在服務部署的服務器上執行命令: sh resin.sh version //確認版本信息是4.0版本: Resin-4.0.27 (built Thu, 22 Mar 2012 06:14:10 PDT) //2.先在遠程的resin修改conf(pk服務的conf目錄為:/data/app/resin_pk/conf)中resin.xml配置文件 在<server-default>標簽中添加 紅色字體的兩行 |
<server-default> <!-- 在本行注釋下面添加JVM標簽 --> //說明 :這兩行參數開啟了JVM的遠程debug模式,並將端口 8889作為遠程調試的端口 |
//3.以上配置完成以后重啟resin服務器,進入resin的bin目錄執行: sh resin.sh stop sh resin.sh start //說明,此處用restart命令應該也可以,我當時用restart后沒有查到端口號,可能是查詢太早了,沒有等服務完全啟動。 //4.查看端口號,確認遠程端口開啟成功。如果能查詢到內容證明端口開啟成功,查詢不到則沒有開啟成功。注意,要等服務完全啟動后再查詢,否則可能查詢不到。 netstat -an | grep 8889 //6.需要運維同學配置nginx端口轉發,將應用部署服務器的8889端口映射到外網端口(因為外網無法直接訪問dev服務器) nginx配置完畢后,后向運維同學詢問nginx外網對應的ip和端口號。 //7.在本地的mac電腦上執行telnet命令查詢nginx端口是否轉發成功。例如nginx對外的ip地址是:54.223.118.178 應用對外映射的端口號是:8889 telnet 54.223.118.178 8889 //如圖則開啟成功,否則nginx配置的轉發失敗,找運維確認。 |
3、在idea中配置遠程的ip和端口,並選定應用進行調試:
run選項中→ Edit Configuration→ 左上角 + 號 → 選擇新建remote 選項
最后給遠程服務取一個名字,填寫nginx的ip和端口,選擇遠程部署的項目並保存,這時就大功告成了。
調試使用:只需要選擇剛才新建的名稱,點擊debug,選擇在對應的方法打上斷點;服務在調用遠程dev上的接口時就會進入本地的idea代碼。
最后確定遠程debug服務是否成功,點擊debug運行后出現類似以下內容說明遠程debug連接成功。