我有兩個Web應用程序部署在同一臺服務器中的JBoss。我觀察到類路徑在這兩個Web應用程序之間共享。如何防止JBoss inter web應用程序類路徑?
那麼如何防止應用程序之間的classpath saring。我的意思是在一個應用程序中可用的任何類和jar文件不應該在jboss中同一服務器中的另一個應用程序中可見。
我有兩個Web應用程序部署在同一臺服務器中的JBoss。我觀察到類路徑在這兩個Web應用程序之間共享。如何防止JBoss inter web應用程序類路徑?
那麼如何防止應用程序之間的classpath saring。我的意思是在一個應用程序中可用的任何類和jar文件不應該在jboss中同一服務器中的另一個應用程序中可見。
的JBoss wiki狀態:
在JBoss中-3.2.3,所述 jbossweb-tomcat41.sar被配置爲 使用統一的類加載器作爲Web應用 類加載器。這是 控制的
UseJBossWebLoader
屬性中的jbossweb-tomcat41.sar/META-INF/jboss-service.xml
描述符。利用統一的類加載器 意味着在WEB-INF/classes
和WEB-INF/lib
內的戰爭中可用的類 被納入默認 共享類加載器存儲庫。這個 可能不是你想要的 與默認的servlet 2.3 類加載模型相反,並且可能導致 在 之間共享類應用程序。您可以通過將此屬性設置爲false來禁用此 。
它接着說,這種行爲是在4.0.2改變,所以這是一個合理的假設,你仍然需要做到這一點的4.0.1。
對於JBoss的大多數版本,你需要更新你的jboss-web.xml文件:
<jboss-web>
<class-loading>
<loader-repository>com.example:archive=unique-archive-name</loader-repository>
</class-loading>
</jboss-web>
詳情參見以下參考:
哪個版本的JBoss AS? – McDowell 2011-01-30 13:58:12