怎樣調(diào)試Tomcat源碼,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供老河口企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為老河口眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
今天以Tomcat源碼為例,來(lái)總結(jié)下源碼調(diào)試的方式。
例如問(wèn)題的處理過(guò)程,大致是發(fā)現(xiàn)問(wèn)題,分析問(wèn)題,解決問(wèn)題。源碼的調(diào)試我們簡(jiǎn)單總結(jié)下:
獲取源代碼
Tomcat的源代碼下載方式也比較多
從github上下載(https://github.com/apache/tomcat)
從Tomcat的SVN服務(wù)器下載(http://svn.apache.org/repos/asf/tomcat/)
從Tomcat官網(wǎng)下載(http://tomcat.apache.org/download-80.cgi)
每個(gè)版本的下載頁(yè)最下方都會(huì)有對(duì)應(yīng)的源碼壓縮包供下載,如下圖
將源碼導(dǎo)入IDE
這個(gè)工作每個(gè)Developer應(yīng)該都沒(méi)有問(wèn)題,我們不過(guò)多寫(xiě)這個(gè)。
添加依賴
導(dǎo)入到IDE之后,許多文件都會(huì)提示紅X,提示缺少依賴的jar文件。此時(shí)可以通過(guò)添加系統(tǒng)中已有的相關(guān)文件,如果是此Maven形式組織工程,可以直接添加相應(yīng)的依賴。
運(yùn)行應(yīng)用
這一步需要先找到應(yīng)用的入口,即Main-Class,之后執(zhí)行該類即可。當(dāng)然,有些應(yīng)用在運(yùn)行時(shí)需要必要的輸入?yún)?shù),Tomcat就需要指定catalina.home。
這類入口應(yīng)用,可以通過(guò)以下方式尋找:
如果應(yīng)用是以jar文件的形式提供,那么在它的META-INF目錄內(nèi)下會(huì)有一個(gè)
MANIFEST.MF文件。
如果jar文件中沒(méi)指定,或者應(yīng)用是以腳本的形式啟動(dòng),可以從腳本中尋找其默認(rèn)執(zhí)行的類,例如Tomcat的啟動(dòng)腳本catalina.bat中,就包含這樣的內(nèi)容:
set MAINCLASS=org.apache.catalina.startup.Bootstrap
通過(guò)上述方式確定主類之后,根據(jù)需要配置相應(yīng)的VM參數(shù)及應(yīng)用自身的參數(shù),代碼就跑起來(lái)了。之后根據(jù)想要了解的內(nèi)容,設(shè)置斷點(diǎn),開(kāi)啟Debug之旅吧。
以上是通用的步驟,具體到Tomcat,我們來(lái)談一起具體的方式方法。
以工程形式調(diào)試
以Eclipse為例
首先創(chuàng)建一個(gè)工程Java工程。
導(dǎo)入源碼文件,此處可以有如下方式:
全部拷貝進(jìn)來(lái)
以link source方式引入。(右擊項(xiàng)目,在build Path中選擇Link source)
將已安裝的Tomcat的lib下的jar文件添加到項(xiàng)目依賴中,再添加其它需要的jar文件,例如ant.jar
設(shè)置主類
設(shè)置參數(shù)
點(diǎn)擊Debug,程序跑起來(lái)了,開(kāi)始調(diào)試吧。
以Attach方式調(diào)試
新建工程,將源碼導(dǎo)入。此時(shí)可以把Tomcat以debug的方式啟動(dòng)。為了在第一時(shí)間將代碼Attach到進(jìn)程中,需要設(shè)置jpda啟動(dòng)后自動(dòng)暫停,等待應(yīng)用連接。
可以在腳本文件catalina.bat中直接設(shè)置
set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
直接把上面紅色內(nèi)容改成y即可,也可以先在命令行中設(shè)置一下
之后執(zhí)行命令
catalina.bat jpda start
默認(rèn)的連接端口是8000
之后,項(xiàng)目中直接以遠(yuǎn)程調(diào)試的方式進(jìn)行即可,
此時(shí)即可進(jìn)行Tomcat的源代碼調(diào)試,如果在一啟動(dòng)的時(shí)候就想跟蹤流程,可以先在Bootstrap中增加斷點(diǎn),開(kāi)始調(diào)試吧。
關(guān)于怎樣調(diào)試Tomcat源碼問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
網(wǎng)頁(yè)標(biāo)題:怎樣調(diào)試Tomcat源碼
文章路徑:http://vcdvsql.cn/article30/peiiso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、靜態(tài)網(wǎng)站、微信公眾號(hào)、網(wǎng)站策劃、網(wǎng)站改版、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)