Tomcat源碼Idea maven啟動

来源:https://www.cnblogs.com/Brake/archive/2020/06/25/13192575.html
-Advertisement-
Play Games

一、下載tomcat源碼 https://github.com/apache/tomcat/tree/8.5.x 二、建立pom 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/PO ...


一、下載tomcat源碼

https://github.com/apache/tomcat/tree/8.5.x

二、建立pom

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5 
 6     <modelVersion>4.0.0</modelVersion>
 7     <groupId>org.apache.tomcat</groupId>
 8     <artifactId>Tomcat8.5</artifactId>
 9     <name>Tomcat8.0</name>
10     <version>8.0</version>
11 
12     <build>
13         <finalName>Tomcat8.5</finalName>
14         <sourceDirectory>java</sourceDirectory>
15         <testSourceDirectory>test</testSourceDirectory>
16         <resources>
17             <resource>
18                 <directory>java</directory>
19             </resource>
20         </resources>
21         <testResources>
22             <testResource>
23                 <directory>test</directory>
24             </testResource>
25         </testResources>
26         <plugins>
27             <plugin>
28                 <groupId>org.apache.maven.plugins</groupId>
29                 <artifactId>maven-compiler-plugin</artifactId>
30                 <version>2.3</version>
31                 <configuration>
32                     <encoding>UTF-8</encoding>
33                     <source>1.8</source>
34                     <target>1.8</target>
35                 </configuration>
36             </plugin>
37         </plugins>
38     </build>
39 
40     <dependencies>
41         <dependency>
42             <groupId>junit</groupId>
43             <artifactId>junit</artifactId>
44             <version>4.12</version>
45             <scope>test</scope>
46         </dependency>
47         <dependency>
48             <groupId>org.easymock</groupId>
49             <artifactId>easymock</artifactId>
50             <version>3.4</version>
51         </dependency>
52         <dependency>
53             <groupId>ant</groupId>
54             <artifactId>ant</artifactId>
55             <version>1.7.0</version>
56         </dependency>
57         <dependency>
58             <groupId>wsdl4j</groupId>
59             <artifactId>wsdl4j</artifactId>
60             <version>1.6.2</version>
61         </dependency>
62         <dependency>
63             <groupId>javax.xml</groupId>
64             <artifactId>jaxrpc</artifactId>
65             <version>1.1</version>
66         </dependency>
67         <dependency>
68             <groupId>org.eclipse.jdt.core.compiler</groupId>
69             <artifactId>ecj</artifactId>
70             <version>4.5.1</version>
71         </dependency>
72 
73     </dependencies>
74 </project>
View Code

編譯可能有個測試類過不了。刪除即可。

三、新建catalina-home目錄

  • 把webapp文件夾和conf文件夾copy到Catalina-home目錄
  • 新建空文件夾temp、log、lib

四,設置啟動參數

-Dcatalina.home=catalina-home -Dcatalina.base=catalina-home -Djava.endorsed.dirs=catalina-home/endorsed -Djava.io.tmpdir=catalina-home/temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=catalina-home/conf/logging.properties

 

  

  • main class設置為 org.apache.catalina.startup.Bootstrap
  • vm option複製上面的參數主要是設置Catalina的啟動目錄

 五、啟動

 至此,tomcat已經成功啟動。

六、訪問tomcat

 

 

發現有NPE

解決:在Bootstrap中啟動jasper,修改代碼,在ContextConfig中加入如下代碼

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

啟動成功。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 動態生成驗證碼案例(Java) 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝! servlet代碼 package cn.guizimo.web.servlet; import javax.imageio.ImageIO; im ...
  • IO流(流?) 1.0 概念和分類 2.0 位元組輸出流 (1)輸入一個位元組 import java.io.FileOutputStream; import java.io.IOException; public class Main{ public static void main(String[] ...
  • TCP 非同步風格伺服器 非同步風格伺服器通過監聽事件的方式來編寫程式。當對應的事件發生時底層會主動回調指定的函數。 由於預設開啟協程化,在回調函數內部會自動創建協程,遇到 IO 會產生協程調度,非同步風格伺服器無法保證調度順序,所以在遇到併發時無法保證事件執行順序。 # server.php // 創建 ...
  • 從源碼編譯安裝 # 下載Swoole wget http://pecl.php.net/get/swoole-4.5.2.tgz tar -zxvf swoole-4.5.2.tgz cd swoole-4.5.2 # 安裝相關依賴 yum -y install gcc gcc-c++ autoco ...
  • 上一篇我們講了微服務架構的前世今生(一):傳統行業向互聯網行業的轉型,本文接著3講述微服務技術架構演變。 下圖表示從單體應用逐漸轉變為微服務應用。 一、單一應用架構 通俗地講,“單體應用(monolith application)”就是將應用程式的所有功能都打包成一個獨立的單元。當網站流量很小時,只 ...
  • 來源於stackoverflow上的一個問題為什麼處理有序數組比處理無需數組快,原文中已經有了一些探討,這裡我們首先來複現下結果,然後再解釋下為什麼! 我們有如下兩段代碼,代碼看起來都是差不多的,實際上邏輯也是一樣的,都是統計數組中小於THRESHOLD數的個數,唯一的區別是一個是在無序數組中統計, ...
  • 一、Celery 核心模塊 1. Brokers brokers 中文意思為中間人,在這裡就是指任務隊列本身,接收生產者發來的消息即Task,將任務存入隊列。任務的消費者是Worker,Brokers 就是生產者和消費者存放/拿取產品的地方(隊列)。Celery 扮演生產者和消費者的角色。 常見的 ...
  • 1.包裝類是什麼? java中我們經常將基本數據類型轉換為對象,例:將基本數據類型存儲到object[]數組或集合中進行操作 為瞭解決這個問題,Java在設計類的時候為每個基本數據類型設計了一個對應的類進行代表 這八個和基本數據類型對應的類統稱包裝類 包裝類位於java.lang包下 以下是八種數據 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...