Eclipse遠程調試Tomcat

1. 應用場景

經過JavaJPDA遠程調試功能將本地源碼與遠程部署的應用鏈接起來實現調試,其中程序源碼與服務器上發佈的編譯代碼版本要保持一致,保證調試定位準確。調試的過程當中,部署在應用服務器上的應用處於DEBUGE模式。java

2. Tomacat配置

2.1. JPDA參數

JPDAJava平臺上的調試器定義了一個標準的體系結構。默認狀況下,JVM並無啓用JPDA。須要在啓動JVM的命令行加載如下參數:-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=ylinux

-Xdebug
啓用調試特性
-Xrunjdwp
啓用JDWP實現,它包含若干子選項:
transport=dt_socket
JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸。
address=8000
JVM在8000端口上監聽請求。
server=y
y表示啓動的JVM是被調試者。若是爲n,則表示啓動的JVM是調試器。
suspend=y
y表示啓動的JVM會暫停等待,直到調試器鏈接上。suspend=y這個選項很重要。若是
你想從Tomcat啓動的一開始就進行調試,那麼就必須設置suspend=y。


2.2. 配置方式一

打開apache-tomcat\bin目錄將在啓動文件中設置CATALINA_OPTS參數apache

      1)       Windows系統在startup.bat開始處中增長以下內容:tomcat

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

     2)       Linxu系統在startup.sh開始處中增長以下內容:服務器

declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

ps:linux打開端口命令的使用方法。 nc -lp 8000 &(打開8000端口)。查看是否打開8000端口netstat -an | grep 8000eclipse

2.3. 配置方式二

1·複製startup.bat startup_JPDA.bat並作以下配置:socket

set JPDA_TRANSPORT=dt_socket        --鏈接方式工具

set JPDA_ADDRESS=8000                    --監聽端口spa

set JPDA_SUSPEND=y                          --是否掛起.net

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

 

注意將call "%EXECUTABLE%" start %CMD_LINE_ARGS% 換成了call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%。以下圖所示:


若是配置掛起參數suspend=y(配置方式一)或JPDA_SUSPEND=y(配置方式二),JVM會使用socket方式,打開8000端口並掛起,等待客戶端(Eclipse 遠程Debug模式)接入,主要用於應用程序啓動過程當中的調試。如圖:

3. Eclipse配置

1)打開Eclipse,導入項目源碼(與被調試的代碼一致)

2)打開Eclipse工具欄上Run -->Debug Configuration

3)選中左側Remote Java Applilcation右鍵New—打開debug配置頁面

4)設置參數

Project:  選擇被調試的項目

Connection Type: 使用SocketAttach

Hosttomcat服務器所在IP地址

Port8000(前面配置的監聽端口)

5)設置完成後,記得點擊Apply按鈕而後點擊下方的Debug按鈕,eclipse即可以已Debug模式調試遠程tomcat上發佈的代碼了。

4. 參考

       1·http://blog.csdn.net/jarfield/article/details/5250915

    其中有關於如何遠程調試JVMJPDA簡介

相關文章
相關標籤/搜索