項目遠端偵錯,項目調試
背景
在Java項目開發的過程中,本地調試是非常普遍的,但是有些情況也是本地調試所做不到的,例如Maven項目等。其實這時候就需要遠端偵錯,不管開發工具是Eclipse,還是Netbeans,異或是IDEA,都是可以實現遠端偵錯的,當然這也離不開應用伺服器的支援。
具體說明
列舉兩個應用伺服器的執行個體,一個為resin(4.0版本,以前版本的配置方式可以自行尋找)伺服器,一個為tomcat伺服器。
resin伺服器
過resin伺服器的童鞋都應該清楚,resin伺服器的核心設定檔是resin.xml,進行遠端偵錯的話,需要在resin.xml檔案中配置一下<server-default>標籤的子標籤<jvm-arg>。具體配置如下:
<jvm-arg>-Xnoagent</jvm-arg><jvm-arg>-Xdebug</jvm-arg> <jvm-arg>-Djava.compliler=NONE</jvm-arg><jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082</jvm-arg>
這裡需要注意的是address的連接埠號碼,這個是監聽jvm的連接埠,如果遠端偵錯是需要輸入這個連接埠號碼的。配置完成之後重啟resin。後面就需要配置IDE環境了,每個IDE都有下面的配置:
在IDE中需要配置一個Remote java application的配置並且運行找到我們要部署的項目,並且輸入主機地址和連接埠號碼:
在運行之前確保resin中已經部署了此項目,如果部署了就可以執行了,這時候在IDE中就可以設定斷點了,當訪問的時候就可以執行到斷點處。
Tomcat伺服器
配置tomcat,主要是添加一個檔案debug.bat,檔案內容為
set JPDA_ADDRESS=8000 set JPAD_TRANSPORT=dt_socket SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 startup
其實這裡和resin的類似,address是監聽jvm的連接埠號碼,這時候以後啟動tomcat的時候僅僅啟動debug.bat檔案即可。剩下的就是IDE的配置,和resin是一樣的。
提示
這裡提到的一點就是,如果不想每次打包項目部署的話,可以將resin或者tomcat伺服器的部署項目位置直接改成要調試的項目位置即可。
總結
有了遠端偵錯,有些項目的調試不再用列印日誌的方式了,還是很方便的。