我在同一服务器中的JBoss中部署了两个Web应用程序。我观察到这两个Web应用程序之间共享了classpath。
那么我该如何防止应用程序之间的类路径咆哮。我的意思是在一个应用程序中可用的任何类和jar文件不应该在jboss中的同一服务器中的另一个应用程序中可见。
答案 0 :(得分:1)
对于大多数版本的jBoss AS,您需要更新jboss-web.xml文件:
<jboss-web>
<class-loading>
<loader-repository>com.example:archive=unique-archive-name</loader-repository>
</class-loading>
</jboss-web>
有关详细信息,请参阅以下参考资料:
答案 1 :(得分:0)
在jboss-3.2.3中, jbossweb-tomcat41.sar配置为 使用统一的类加载器作为Web 应用程序类加载器这是 由
UseJBossWebLoader
控制 中的属性jbossweb-tomcat41.sar/META-INF/jboss-service.xml
描述。使用统一的类 loader意味着类 可以在战争中获得WEB-INF/classes
和WEB-INF/lib
被纳入默认值 共享类装入器存储库。这个 可能不是你想要的 与默认的servlet 2.3相反 类加载模型,可以导致 在两者之间共享类/资源 网络应用。你可以禁用它 通过将此属性设置为false。
接着说这个行为在4.0.2中已经改变了,所以你仍然需要在4.0.1中这样做是合理的假设。