国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

linux下的java遠程調試jpda+tomcat(轉)

2019-11-15 01:05:02
字體:
來源:轉載
供稿:網友
linux下的java遠程調試jpda+tomcat(轉)

轉載自 http://blog.csdn.net/kongqz/article/details/3971263

項目放到linux服務器了,服務器的環境或者數據可能和我們本地不一樣,這個時候我們可能需要遠程的斷點進行調試,來查看請求過程中的各個變量的值。這里我們的應用服務器用的tomcat5.5.17

這個時候你需要知道JPDA這個概念。

簡單的概括下JPDA:

Java Platform Debugger Architecture(JPDA:Java平臺調試架構) 由Java虛擬機后端和調試平臺前端組成  1.Java虛擬機提供了Java調試的功能  2.調試平臺通過調試交互協議向Java虛擬機請求服務以對在虛擬機中運行的程序進行調試

這里我們的eclipse就是那個調試的前臺。我們需要將本地的調試平臺和服務器運行的項目結合起來。

第一步:啟動tomcat的jpda支持

默認情況下tomcat的啟動命令是: ./catalina.sh start 但是這個命令是沒有啟動我們的jpda這個服務

我們需要啟動jpda服務,好在tomcat提供了集成化的命令:./catalina.sh jpda start,這樣就啟動了我們服務器jvm的jpda服務了。tomcat默認的jpda服務的端口是8000,這個時候我們使用命令看下 netstat -an,看看8000端口是不是已經啟動了。

第二步:從本地建立jpda的斷點調試前臺

1、在eclipse的“Run”菜單下選擇“Debug...”菜單(有的eclipse版本是debug configuration),在彈出的對話框左邊的菜單中選擇“Remote Java application”菜單,右鍵點擊,選擇“New”,這個時候彈出一個需要填寫參數的對話框

2、在彈出的框中,定義項目名稱,選擇要斷點調試的項目,Connect type(默認Standard (Socket Attach)),定義我們的web項目放在哪里(就是我們的遠程虛擬機在哪里),填寫他的ip以及提供的服務端口號,tomcat的這個版本是8000.最后選擇source標簽,將項目的源碼加入,我這里一般選擇add一個java PRoject的方式

3、切換到debug模式下,就能看到debug的相關選項都是激活狀態。在本地的source文件中加斷點,然后請求服務的鏈接,看看我們的斷點調試是否成功。

以上的操作經過我本人驗證過。

很多的服務器都提供這種遠程調試的接口服務,所以不要局限于tomcat可用,最主要的區別就是每個服務器提供的jpda的啟動方式不同,提供的服務端口不同,這里我們tomcat5.5提供的啟動方式是catalia.sh jpda start這種命令行的方式,端口默認用8000。大家在開發的時候按照服務器提供的說明進行調試吧

加點常看的操作命令:

1、查看當前tomcat的進程號

[java]view plaincopy
  1. [root@localhostbin]#ps-ef|greptomcat
  2. root148571609:22pts/000:00:35/usr/java/jdk1.6.0_22/bin/java-Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n-Djava.endorsed.dirs=/usr/local/tomcat6/endorsed-classpath/usr/local/tomcat6/bin/bootstrap.jar-Dcatalina.base=/usr/local/tomcat6-Dcatalina.home=/usr/local/tomcat6-Djava.io.tmpdir=/usr/local/tomcat6/temporg.apache.catalina.startup.Bootstrapstart
  3. root1505514811009:31pts/000:00:00greptomcat

通過上邊的命令執行后可以看到tomcat的進程號是14857

2、殺掉當前的tomcat進程

[c-sharp]view plaincopy
  1. [root@localhostbin]#kill-914857

為啥這么殺死進程?因為用常規的shutdown.sh 殺死tomcat進程很慢,偶爾因為資源占用還關閉不了,索性直接做掉這個進程3、啟動jpda的遠程調試

[java]view plaincopy
  1. [root@localhostbin]#cd/usr/local/tomcat6/bin
  2. [root@localhostbin]#./catalina.shjpdastart

4、查看默認的8000對外服務端口是否啟動

[java]view plaincopy
  1. [root@localhostbin]#netstat-an|grep8000
  2. tcp00192.168.119.149:8000192.168.70.80:1535ESTABLISHED

5、測試完畢如何關閉?

直接殺死tomcat進程就行了,或者按照正常步驟關閉tomcat就ok了

6、直接按照上邊的方法進行遠程連接調試吧。在本地源碼中增加斷點,在查看遠程服務器。注意,這個8000端口不影響原來的任何服務。只是當我們將項目上線的時候就不要這么啟動我們的tomcat了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手机| 洛扎县| 舒兰市| 松滋市| 鸡东县| 蒙自县| 武夷山市| 石景山区| 无极县| 旌德县| 红原县| 江山市| 格尔木市| 青川县| 龙里县| 平山县| 华宁县| 于田县| 沙湾县| 金塔县| 田林县| 池州市| 孟村| 茌平县| 新源县| 建始县| 河北省| 东丽区| 手机| 景洪市| 乌鲁木齐市| 阜阳市| 卢湾区| 始兴县| 清流县| 肥东县| 防城港市| 四平市| 新民市| 钟祥市| 老河口市|