TOMCAT 02 tomcat 啟動流程01

2021-09-13 17:04:37 字數 1306 閱讀 9633

通過debug 分析tomcat啟動流程

1. 初始化內容:反射例項話catalina並新增classloader

初始化入口

public static void main(string args) 

catalinaloader = createclassloader("server", commonloader);

sharedloader = createclassloader("shared", commonloader);

上述initclassloaders方法會讀取$/conf/catalina.properties檔案,讀取要loader的jar包配置

注意,tomcat在catalina.properties 配置檔案中指定了:common.loader,catalina.loader,shared.loader但是後2者的配置都為空,網上說是shared.loader 是分享公共的,沒有配置的意義。

從上述的initclassloaders 可以看出使用creatteclassloader("","") 建立後兩者的loader時,都傳入了commonloader, 這樣,配置為空,catalinaloader 其實還是commonloader.

備註:tomcat使用了org.apache.catalina.startup.catalinaproperties封裝tomcat/conf/catalina.properties檔案,其讀取配置檔案的方式值得學習,**如下:

private static void loadproperties() 

} catch (throwable t)

if (is == null)

private object catalinadaemon = null;  //catalinadaemon 是catalina物件,該物件的parentclassloader 屬性是sharedclassloader 也就是commonclassloader
我們可以看到,其中的catalinadaemon 的宣告是object型別的,降低了tomcat和catalina的耦合,而且編譯bootstrap時不用提供catalina的依賴。

tomcat啟動失敗無許可權 Tomcat啟動許可權

使用root許可權啟動tomcat會帶來很多的安全問題,尤其是在 者獲得webshell之後危害就更大了。這就要求啟動tomcat最好是採用一般的使用者許可權。root localhost groupadd tomcat root localhost useradd d home tomcat g ...

tomcat掛了自啟

先上指令碼 bin sh function 自動監控tomcat程序,掛了就執行重啟操作 author wangqy define 獲取tomcat ppid tomcatid ps ef grep tomcat grep w apache grep v grep awk tomcat startu...

解讀tomcat原始碼之tomcat的啟動過程

tomcat 我們經常用到,但是有時候我們卻感到對他無比陌生,出了錯都不知道是什麼原因引起的。這個就比較尷尬,不過好在tomcat是開源免費的,我們可以看到其原始碼,那麼問題就簡單了,我們看看原始碼什麼迷惑就沒有了。最近對於tomcat有諸多不解,故看看原始碼來解惑,理解可能有些偏差,還請大神不吝賜...