2016-09-29 20 views
1

Tomcat(或任何Web應用程序服務器)如​​何分別加載不同的WAR文件,儘管它可以在一個JVM進程中運行?他們可能擁有相同的類和其他資源,但必須保證應用程序的一致性和隔離性。Tomcat如何加載不同的war文件?

+0

不確定你的意思與一個線程,但通常WAR文件被加載到他們自己的類加載器。這樣你可以擁有多個具有相同名稱的類版本。所有你需要確保的是從相應的類加載器實例化servlet。線程可能需要將類加載器設置爲上下文類加載器(具體取決於你不能使用的代碼),但那不是嚴格需要的。例如,OSGi對捆綁包有類似的概念,默認情況下沒有設置TCCL。 – eckes

+0

@eckes,謝謝你的解釋。那麼,Tomcat是否爲每個war文件創建一個新的類加載器來加載類?你如何看待,是否值得看看tomcat的代碼來理解,還是我可以在某處閱讀它? – VRomaN

+0

是的,請參閱ClassLoader HowTo:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html – eckes

回答