震驚!我三步就搞定了 Tomcat 源碼環境搭建

引言

隨着微服務的流行,輕量級的服務應用器也是跟着大火了。畢竟那些企業級的服務應用器部署搭建成本太高。並且springboot 自帶的就是 tomcat 服務。

所以我們也有必要學習 tomcat 的相關知識啦,我們在項目中也用的很多,但是我們往往只是用他,沒有深入的瞭解,但這樣對我們來說是不夠的的。

所以這裏就來三步教會大家搭建一個 tomcat 源碼運行環境,讓大家打開深入瞭解 tomcat 的大門,邁向人生的巔峯~~~

image-20200627101159036

下載源代碼

想要構建源代碼,當然需要下載源代碼啦。我這裏用的是8.5.50 大家可以去官網上下載。也可以在公衆號後臺回覆 “tomcat 源碼” 獲取。

下載好之後,解壓如下:

image-20200627103103808

我們創建一個resource 目錄,將conf 目錄和 webapps 目錄放到 resource 目錄下。

image-20200627103354924

創建 pom.xml

在解壓的根目錄創建一個pom.xml 文件,說到底 tomcat 底層還是 java 實現的。是一個maven 工程,我已我們創建一個pom.xml.

image-20200627103606260

內容如下:

<?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 依賴的基礎包-->
 <dependencies>
 <dependency>
 <groupId>org.easymock</groupId>
 <artifactId>easymock</artifactId>
 <version>3.4</version>
 </dependency>
 <dependency>
 <groupId>ant</groupId>
 <artifactId>ant</artifactId>
 <version>1.7.0</version>
 </dependency>
 <dependency>
 <groupId>wsdl4j</groupId>
 <artifactId>wsdl4j</artifactId>
 <version>1.6.2</version>
 </dependency>
 <dependency>
 <groupId>javax.xml</groupId>
 <artifactId>jaxrpc</artifactId>
 <version>1.1</version>
 </dependency>
 <dependency>
 <groupId>org.eclipse.jdt.core.compiler</groupId>
 <artifactId>ecj</artifactId>
 <version>4.5.1</version>
 </dependency>
 <dependency>
 <groupId>javax.xml.soap</groupId>
 <artifactId>javax.xml.soap-api</artifactId>
 <version>1.4.0</version>
 </dependency>
 </dependencies>
</project>

導入 IDEA

接下來我們直接在 idea 中導入 tomcat 項目。導入完成後,還需要做一些配置。我們選擇 Bootstrap 爲啓動類。

image-20200627104257832

並且給啓動類 Bootstrap 配置 VM 參數,因爲 tomcat 源碼運⾏也需要加載配置⽂件等。

-Dcatalina.home=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource
-Dcatalina.base=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource/conf/logging.properties

這裏的絕對路徑換成你們電腦的位置。

測試

經過上面三步,其實 tomcat 的運行環境就搭建起來啦。我們點擊運行一下。

image-20200627104720244

可以看到已經啓動成功了,我們瀏覽器上看下。輸入:

localhost:8080

image-20200627104828079

什麼鬼?報錯啦?翻車啦?不存在的。

image-20200627104930351

這是因爲我們沒有初始化jsp 解析引擎,所以需要我們手動初始化一下,怎麼做呢?

找到 ContextConfig 的 configureStart 方法。

在 webConfig(); 後面加上:

context.addServletContainerInitializer(new JasperInitializer(),null);

image-20200627105205759

然後我們再來啓動下試試。

image-20200627105413285

完美!!!

image-20200627105517675

總結

想着以爲很難,做着其實發現也不過爾爾。所以大家要勇於付諸實踐纔行喲~~~

如果您覺得好看,記得給我點個在看喔!!!

如果您覺得好看,記得給我點個在看喔!!!

如果您覺得好看,記得給我點個在看喔!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章