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