2013-04-10 47 views
1

我使用Jetty 8來運行一些servlet。我有兩個(或更多)共享源代碼的應用程序,我想在同一個端口(即8080)上運行它們。我已經把兩個不同的WAR文件到碼頭,one.wartwo.war,使我在訪問它們,例如,Jetty中的每個應用程序有一個JVM WAR?

  • http://localhost:8080/one
  • http://localhost:8080/two

兩個WARS包含一個相同的共用JAR文件(常見的應用)。每個WAR應用程序是否都有自己的JVM?真的,我只想確定常見的JAR類是完全獨立的,因爲一些類是靜態的,我需要這兩個應用程序顯然不共享對同一靜態類的訪問。

這看起來很明顯,我似乎確認這種情況是通過一個簡單的測試場景爲每個WAR單獨加載公共類(兩個相同的WAR託管在相同的Jetty實例中,但在不同的路徑.. 。往上看)。但我缺乏書面文件或確認情況如此。

回答

3

每個WAR文件都有它自己的類加載器,請參閱http://docs.codehaus.org/display/JETTY/Classloading。所以你可以安全地使用靜態類。

+1

是的,這是標準的Servlet容器行爲,所有符合規範的Java servlet容器將隔離它們自己的類加載器中的webapps。你甚至可以用不同的servlet-api支持級別進行不同的戰爭。 – 2013-04-10 20:15:26

+1

當前文檔鏈接:http://www.eclipse.org/jetty/documentation/current/jetty-classloading.html – 2013-04-10 22:14:00

相關問題