當前位置:編程學習大全網 - 源碼下載 - eclipse進行遠程調試的時候的出現下圖問題時怎麽解決

eclipse進行遠程調試的時候的出現下圖問題時怎麽解決

1、Linux中配置tomcat在catalina.sh中添加如下

CATALINA_OPTS="-Xdebug? -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"(不要換行,要在同壹行)

2、Window中修改 catalina,bat文件,添加:

Set? “CATALINA_OPTS=-Xdebug? -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

如圖

參數說明:

-Xdebug? : 啟用調試模式

-Xrunjdwp<sub-options>? : 加載JVM的JPDA參考實現庫

transport=dt_socket? :Socket連接,可選dt_shmem 通過***享內存的方式連接到調試服務器

address=8000 :調試服務器監聽的端口

server=y : 是否是服務器端,n為客戶端

suspend=n : 啟動過程是否加載暫停,y為啟動時暫停,方便調試啟動過程

3、啟動tomcat,看看tomcat是否啟動成功,

如果啟動成功,tomcat日誌文件(catalina.out)中會有如下輸入:

Listening for transport dt_socket at address: 8000

4、使用eclipse調試:

點擊debug,就可進行調試了

剩下的就和普通調試壹樣了。斷點直接在源代碼中添加就行

5、可能出現的連接問題:

Failed to connect to remote VM. Connection refused.

Connection refused: connect。

出現如圖所示的情況可能是已經建立了壹個連接了。

解決方法:去debug透視途中,

找到點擊

斷開鏈接,就可以解決問題了。

但是按照上面的方法進行操作可能會有壹些小問題,在遠程服務器中更改Tomcat的配置文件catalina.sh之後第壹次重啟Tomcat時,壹般是沒有問題的(註意設置的DEBUG端口號不要和其它已有應用端口號沖突),但是在之後的重啟過程中可能會出現下面的問題:

cd tomcat/bin

./shutdown.sh ; ./startup.sh ; tailf ../logs/catalina.out

ERROR: transport error 202: bind failed

ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)

JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

之所以出現這個問題,主要是因為,我們添加的DEBUG端口在關閉Tomcat時不能正常關閉,重啟時又會重新開啟,所以端口被占用,我們可以在關閉Tomcat之後利用下面的命令進行驗證會發現,仍然有進程在占用著DEBUG端口。

lsof -i:44121(或者 netstat -na|grep 44121)

這個其實就是我們自己之前開啟的。當然我們可以在每次shutdown之後手動kill掉這個進程,但是終歸不是解決之道。我現在想到的比較好的方法是在catalina.sh中配置DEBUG端口時,把需要添加的那壹行添加到start條件的開始出,並且在stop條件的開始出添加

debug_pid=lsof -i:44121 | tail -n 1 | awk -F" " '{print $2}'

kill -9 ${debug_pid}

  • 上一篇:如何將android studio 打包aar
  • 下一篇:如何制作裂變海報?公眾號怎麽進行海報裂變
  • copyright 2024編程學習大全網