何為遠程調試?我們一般調試一個web項目的java代碼時,需要將你的tomcat服務器和你的開發工具(比如Jbuilder)集成,或需要工具的一些插件支持(比如Eclipse下的myclipse等),這些方式都是在本地進行,即你的開發工具和tomcat運行在同一臺服務器上,如果你的開發工具和服務器不再一臺機器上那就需要實現遠程調試功能了。
實現方法:
在tomcat的catalina.bat文件中加入下面的設置,當然SET CATALINA_OPTS 變量應該在使用它之前。這是在tomcat啟動時設置一些虛擬機參數,使服務器允許遠程連接功能,address=5888表示遠程連接的端口號,可以設置成任意其他不沖突端口。其他的應用服務器比如weblogic也應該可以設置這些參數,有興趣的可以測試。
SET?CATALINA_OPTS
=
-server?-Xdebug?-Xnoagent?-Djava.compiler
=
NONE?-Xrunjdwp:transport
=
dt_socket
,
server
=
y
,
suspend
=
n
,
address
=
5888
?
這樣就Ok了,重啟動tomcat,可以直接獨立啟動,而不用在eclipes的插件中啟動。打開eclipse中的debug設置窗口,選擇Remote Java Application ,新建一個debug項,輸入服務器IP和剛才設置端口號,點ok就可以進入debug狀態了。Jbuilder中同樣可以設置Remote Java Application。
?
?
另有Javaeyes論壇的一片文章如下
?
ibm論壇的原始文章如下
?
用以參考~
?
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xnoagent"/>
<jvmarg value="-Djava.compiler=none"/>
<jvmarg value-Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n"/>
?
另外(version 4.1.29):
我手工將catalina.bat中
set JPDA=
修改為
set JPDA=jpda
set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=XXXX
然后在eclipse里面創建一個remote java application ,將port設置為XXXX的值,也可。
因為調試的啟用,無非設置transport屬性允許遠程連接并且指定一個端口號而已,指定之后在eclipse里面對應的配置該端口號即可。