將tomcat源碼導入eclipse


前言:

寫完了socket小應用的原始版本,中間還有好多預想的功能沒有實現,在寫的過程中也發現了很多問題。因為前面有粗略的看過tomcat實現原理解析,知道tomcat其實也是純java寫的web服務器,而且用的也是socket通信。所以特別想看下tomcat是如何處理這些問題的。

 

主要步驟:

1. 去apache官網下載對應的tomcat版本源碼(我這里下載的是9.0.0.M9)  http://tomcat.apache.org/download-90.cgi

2. 解壓后的源碼是沒法作為工程直接導入eclipse的。需要使用ant進行編譯,所以這里需要去ant官網下載ant對應版本。http://ant.apache.org/bindownload.cgi

然后配置ANT_HOME、path、classpath。

3. 在解壓后的tomcat源碼的根路徑打開控制台,並且輸入 ant ide-eclipse進行編譯。此時會下一堆依賴的jar包。這些jar包下載到的路徑可以通過打開跟路徑下build.properties.default文件中的base.path指定,默認的值為${user.home}/tomcat-build-libs。其實在C:\Users\Administrator\tomcat-build-libs路徑下。這里為了將下載下來的依賴的jar包放到tomcat源碼路徑,修改base.path為E:/SourceCode/Code/tomcat/apache-tomcat-9.0.0.M9-src/build-libs。

4. 如果用的是最新版本的tomcat源碼,那么在編譯的過程中可能會出現:[get] Error getting https://objenesis.googlecode.com/files/objenesis-1.2-bin.zip  的錯誤。這個很明顯是天朝防火牆造成的。我這里將下載到的上傳到了下面百度雲的地址: http://pan.baidu.com/s/1c2oO0so。下載完成之后,我們可以修改該文件的下載地址為本地,修改后格式如下:

# ----- objenesis, used by EasyMock, version 1.2 or later -----
objenesis.version=1.2
objenesis.home=${base.path}/objenesis-${objenesis.version}
objenesis.loc=http://localhost:8080/objenesis-${objenesis.version}-bin.zip
objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar

這樣指定文件的下載地址為本地。我們只需將下載到的jar包放到本地tomcat的 webapps/ROOT目錄中,然后啟動tomcat服務器即可。當然更簡便的方法,我們其實可以直接刪掉這一段要執行的過程,然后將下載到的zip包直接解壓到前面重新指定的base.path路徑下。這樣會發現多了一個objenesis-1.2目錄,並且目錄下有3個jar包。

最后我們只要再重新執行一次 ant ide-eclipse,保證build success即可。

5. 在eclipse中導入對應的項目源碼跟路徑,可以發現此時eclipse可以將其作為一個工程導入了。導入進去一般還會存在編譯錯誤。這時候需要考慮3個build path的設置:

一是jre的版本以及java compile的版本

二是ANT_HOME的設置:具體步驟如下圖

三是設置TOMCAT_LIBS_BASE,步驟同上,最后選擇的路徑就是base.path配置的路徑。

6.在eclipse中clean整個工程,這時候應該可以編譯成功。然后找到BootStrap.java類,作為java程序運行。運行成功之后就可以通過: http://localhost:8080/ 訪問了。

 

至此,可以通過debug逐步分析tomcat運行過程了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM