resin4.0服務器遠程調試說明

一、開發環境介紹:

目前dev用resin 做爲服務容器。服務調用之間過於複雜,要進行本地代碼調試過於複雜,甚至沒法進行。可是能夠經過jvm的遠程代碼調試來達到本地代碼調試的目的,步驟以下。java

二、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>nginx

    <!-- 在本行註釋下面添加JVM標籤 -->
        <http address="*" port="9991"/>
       <jvm-arg>-Xdebug</jvm-arg>
        <jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8889</jvm-arg>
    </server-default>api

//說明 :這兩行參數開啓了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配置的轉發失敗,找運維確認。

三、在idea中配置遠程的ip和端口,並選定應用進行調試:

run選項中→ Edit Configuration→  左上角 + 號 → 選擇新建remote 選項架構

 

最後給遠程服務取一個名字,填寫nginx的ip和端口,選擇遠程部署的項目並保存,這時就大功告成了。app

 

調試使用:只須要選擇剛纔新建的名稱,點擊debug,選擇在對應的方法打上斷點;服務在調用遠程dev上的接口時就會進入本地的idea代碼。運維

 

 

最後肯定遠程debug服務是否成功,點擊debug運行後出現相似如下內容說明遠程debug鏈接成功。jvm

四、JVM遠程調試總體架構圖:

相關文章
相關標籤/搜索