目前dev用resin 做爲服務容器。服務調用之間過於複雜,要進行本地代碼調試過於複雜,甚至沒法進行。可是能夠經過jvm的遠程代碼調試來達到本地代碼調試的目的,步驟以下。java
//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>nginx <!-- 在本行註釋下面添加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配置的轉發失敗,找運維確認。 |
run選項中→ Edit Configuration→ 左上角 + 號 → 選擇新建remote 選項架構
最後給遠程服務取一個名字,填寫nginx的ip和端口,選擇遠程部署的項目並保存,這時就大功告成了。app
調試使用:只須要選擇剛纔新建的名稱,點擊debug,選擇在對應的方法打上斷點;服務在調用遠程dev上的接口時就會進入本地的idea代碼。運維
最後肯定遠程debug服務是否成功,點擊debug運行後出現相似如下內容說明遠程debug鏈接成功。jvm