Tomcat - 源码构建Tomcat 8.5.55 启动
文章目錄
- 官方地址
- 源碼搭建分析
- 源碼搭建步驟 (Maven管理)
- Step1. 新增maven管理文件 pom.xml
- Step2. 處理conf 和 webapps
- Step3. 導入IEDA
- 3.1 配置Main Class
- 3.2 配置VM 參數
- Step4. 啟動tomcat
官方地址
https://tomcat.apache.org/download-80.cgi
歷史版本:
https://archive.apache.org/dist/tomcat/tomcat-8/
這里最新的是 8.5.55 ,我們就用這個吧
得到 apache-tomcat-8.5.55-src.zip
源碼搭建分析
我們在使用tomcat時,倆目錄 conf 和 webapps 是不是經常需要修改?
一個負責tomcat的配置文件信息,一個負責應用 。 很顯然,我們使用源碼構建tomcat環境的時候,也要告訴tomcat這兩個目錄的位置,以便加載配置文件和應用。
不管形式怎么變, 使用tomcat編譯好的二進制還是源碼部署編譯,tomcat該加載的配置文件都是一樣的。
因此 ,使用源碼編譯需要做出點改變, 比如下面搭建步驟中新建source文件夾目錄,存放conf和webapps(實際上,這個目錄名字愛叫啥,愛放哪 放哪, 我們只要通過VM options 告訴tomcat就好了,為了方便管理,所以在源碼的一級目錄下建個目錄source)
源碼搭建步驟 (Maven管理)
Step1. 新增maven管理文件 pom.xml
解壓apache-tomcat-8.5.55-src.zip 后 ,比如我這里放到了D盤 , 在 D:\apache-tomcat-8.5.55-src 下 新建pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.tomcat</groupId><artifactId>apache-tomcat-8.5.50-src</artifactId><name>Tomcat8.5</name><version>8.5</version><build><!--指定源目錄--><finalName>Tomcat8.5</finalName><sourceDirectory>java</sourceDirectory><resources><resource><directory>java</directory></resource></resources><plugins><!--引入編譯插件,指定編譯級別和編碼--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><encoding>UTF-8</encoding><source>8</source><target>8</target></configuration></plugin></plugins></build><!--Tomcat是java開發的,封裝了很多功能,它需要依賴一些基礎的jar包--><dependencies><!--遠程過程調用工具包--><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc</artifactId><version>1.1</version></dependency><!--soap協議處理工具包--><dependency><groupId>javax.xml.soap</groupId><artifactId>javax.xml.soap-api</artifactId><version>1.4.0</version></dependency><!--解析webservice的wsdl文件工具--><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.2</version></dependency><!--Eclipse Java編譯器--><dependency><groupId>org.eclipse.jdt.core.compiler</groupId><artifactId>ecj</artifactId><version>4.5.1</version></dependency><!--ant管理工具--><dependency><groupId>ant</groupId><artifactId>ant</artifactId><version>1.7.0</version></dependency><!---easymock輔助單元測試--><dependency><groupId>org.easymock</groupId><artifactId>easymock</artifactId><version>3.4</version></dependency></dependencies> </project>Step2. 處理conf 和 webapps
在 D:\apache-tomcat-8.5.55-src 下新建個source目錄 ,原因如上分析
在apache-tomcat-8.5.55-src下創建source文件夾 ,將conf、webapps目錄移動到 source文件夾中
這里多了其他的,是因為我剛才已經啟動tomcat了…
Step3. 導入IEDA
3.1 配置Main Class
新增Application , 選擇Main class , 配置VM 參數
3.2 配置VM 參數
VM參數 ,告訴tomcat 家目錄一級 log日志文件目錄。 【tomcat源碼運行需要加載配置文件】
-Dcatalina.home=D:\apache-tomcat-8.5.55-src\source -Dcatalina.base=D:\apache-tomcat-8.5.55-src\source -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=D:\apache-tomcat-8.5.55-src\source\conf\logging.properties完整的信息如下:
Step4. 啟動tomcat
訪問 http://locahost:8080/
原因: Jsp引擎Jasper沒有被初始化,從而無法編譯處理Jsp,Jsp是需要被轉換成servlet進一步編譯處理的,只需要在tomcat的源碼ContextConfig類中的configureStart方法中增加一行代碼將Jsp引擎初始化
// 初始化Jasper (JSP解析引擎)context.addServletContainerInitializer(new JasperInitializer(),null);重啟再次訪問 http://locahost:8080/
總結
以上是生活随笔為你收集整理的Tomcat - 源码构建Tomcat 8.5.55 启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat - Tomcat套娃式架构
- 下一篇: Tomcat - Tomcat 8.5.