天天看點

Tomcat + Debug 遠端調試

-- debug.bat 

set JPDA_ADDRESS=5888

set JPDA_TRANSPORT=dt_socket

catalina.bat jpda start

第一步、配置tomcat 

一、在windows系統中: 

打開%CATALINE_HOME%/bin下的檔案catalina.bat,加入下面這行: 

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

其中address=8787是沒被使用的端口号。連接配接方式有兩種,為dt_shmem和dt_socket,分别表示本機調試和遠端調試。 

二、在非windows系統中: 

還需要把% CATALINE_HOME %/bin/startup.sh中的最後一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。由于預設的端口是8000,是以如果8000端口已有他用的話,還需在catalina.sh檔案中設定:JPDA_ADDRESS=8787。 

輸入指令startup.sh或者catalina.sh jpda start就可啟動tomcat。 

第二步、配置eclipse 

在Eclipse中選擇RunDebug,在彈出的對話框中右擊Remote Java Application建立一個遠端調試項,如下如所示: 

在“Name”輸入框中輸入遠端調試的名稱,在“Project”中選擇要調試的項目,在“Host”中輸入需要遠端調試項目的IP,也就是tomcat所在的IP,在“Port”中輸入設定的端口号,比如上面設定的8787,然後鈎選“Allow termination of remote VM”,點選“Apply”即可。 

設定完後就可以開始調試了,大概分一下幾步: 

1、啟動tomcat(遠端),如在控制台輸出“Listening for transport dt_socket at address: 8787”,即說明在tomcat中設定成功; 

2、在本機設定斷點,即在需要監視的代碼行前輕按兩下就會出現一個小圓點; 

3、進入上圖界面,選擇要調試的項,點選“Debug”即可進行遠端調試; 

4、當運作到設定了斷點的代碼行處即可看到如下圖所示的淺綠條。 

按鍵操作: 

1、F5鍵與F6鍵均為單步調試,F5是進入本行代碼中執行,F6是執行本行代碼,跳到下一行; 

2、F7是跳出函數; 

3、F8是執行到最後。 

當然,為了友善,可以建立一個批處理檔案,假如取名為debug.bat,在這個檔案中加入下面幾行: 

cd %CATALINE_HOME%/bin 

set JPDA_ADDRESS=8787 

set JPDA_TRANSPORT=dt_socket 

startup 

這樣需要遠端調試時,運作debug.bat即可;不需要遠端調試時,還是運作startup.bat檔案。 

因為tomcat不同版本可能有不同的設定,附件為對應版本的設定。測試最新的tomcat 6.0版本與5.5.9一樣的配置。 

上面主要講的是TOMCAT解壓版本的調試設定,那麼TOMCAT的安裝版本呢?

安裝版本的BIN目錄下面沒有了.bat檔案,那麼如何設定呢。

Java代碼 

  1. 在Tomcat的JavaOpts中加入以下兩行: 
  2. -Djava.compiler=NONE 

在Tomcat的JavaOpts中加入以下兩行:-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787這裡8787是遠端debug的端口