Tomcat7原始碼環境搭建
一、下載Tomcat7原始碼
從官網上下載Tomcat原始碼, http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/src/apache-tomcat-7.0.70-src.zip
下載之後,將原始碼解壓後重名為tomcat-src,放在E盤的tomcat7目錄下.
二、安裝Ant
因Tomcat原始碼需要ant編譯,所以需要安裝Ant,從官網下載後解壓,並配置環境變數即可.
三、安裝JDK6
tomcat7的編譯需要JDK6的環境,JDK7以及以上,ant 編譯時會報錯.
四、用Ant工具編譯Tomcat原始碼
開啟cmd命令列工具,進入tomcat原始碼目錄,輸入ant ide-eclipse ,然後按下Enter鍵,會自動下載編譯需要的依賴包.
testexist: [echo] Testing for C:\Users\yulei/tomcat-build-libs/objenesis-1.2/objenesis-1.2.jar downloadzip: [get] Getting: https://objenesis.googlecode.com/files/objenesis-1.2-bin.zip [get] To: C:\Users\yulei\tomcat-build-libs\download-1649634615.zip [get] Error getting https://objenesis.googlecode.com/files/objenesis-1.2-bin.zip to C:\Users\yulei\tomcat-build-libs\download-16496 BUILD FAILED E:\tomcat7\tomcat_src\build.xml:2697: The following error occurred while executing this line: E:\tomcat7\tomcat_src\build.xml:2848: java.net.ConnectException: Connection timed out: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570) at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:411) at sun.net.www.http.HttpClient.openServer(HttpClient.java:525) at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133) at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection(Get.java:728) at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:641) at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:631) Total time: 1 minute 58 seconds
可以看見,編譯報錯了,是因為從國外網站下載依賴的objenesis-1.2-bin.zip超時了,導致編譯失敗.
解決辦法,翻牆下載objenesis-1.2-bin.zip檔案,這裡為了方便,為大家提供了下載地址:http://pan.baidu.com/s/1kUWtA8v
將其解壓後放在C:\Users\yulei\tomcat-build-libs 目錄下面
再次執行ant ide-eclipse 命名就會編譯成功了
編譯成功後,會生成Eclipse的專案檔案(.classpath等),如下圖:
五、將Tomcat7原始碼匯入MyEclipse
匯入MyEclipse後,工程上面會出現紅色感嘆號.開啟MyEclipse的Problems檢視,可以看到如下錯誤:
解決方案:右鍵tomcat工程,Build Path--->Configure Build Path
如上圖,以Ant舉例,圖示操作,點選ant ,然後點選Edit.. ,若沒有,需要自己新建一個.
以此類推,把餘下的Tomacat依賴包配置好。TOMCAT_LIB_BASE 配置的地址是:C:/Users/yulei/tomcat-build-libs
六、執行Tomcat
右鍵Tomcat工程,Run As --->Java Application, 選擇Bootstrap.
點選OK,出現如下選項:
選擇start-tomcat,後命令行出現如下資訊:
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.CatalinaProperties loadProperties
WARNING: Failed to load catalina.properties
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [D:\CBSS\code\tomcat-7.0.x\output\build\conf\server.xml]
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [D:\CBSS\code\tomcat-7.0.x\output\build\conf\server.xml]
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.
表示,tomcat服務沒有跑起來,彆著急,用Ant deploy一下你的tomcat工程.
deploy成功之後,然後再執行你的tomcat,會出現如下資訊,表示Tomcat服務已成功啟起來:
訪問http://localhost:8080