WEB-INF/lib 内容的 JBOSS 排序

Posted

技术标签:

【中文标题】WEB-INF/lib 内容的 JBOSS 排序【英文标题】:JBOSS ordering of contents of WEB-INF/lib 【发布时间】:2011-08-09 07:41:33 【问题描述】:

我有一个 ear 文件,其中包含一个 war 文件。战争在其 WEB-INF/lib 目录中包含许多 jar。其中一些 jar 包含相同类的冲突(或至少不同)版本。有没有办法可以影响 JBOSS 将这些 jar 文件添加到类路径的顺序?

例如,如果在 a.jar 和 b.jar 中找到了 com.dave.A.class,它们都在 WEB-INF/lib 中,并且我知道 b.jar 包含“正确”版本类,如何确保 JBOSS 优先使用 b.jar 而不是 a.jar。

我知道这会使我的应用程序非常脆弱,所以请不要因此而责骂我 :)

【问题讨论】:

【参考方案1】:

不,我不相信您可以对此进行任何控制。如果幸运的话,类加载器会以“正确”的顺序加载它们。

您确实需要整理这些库,以免发生冲突,如有必要,请重新打包它们。

【讨论】:

谢谢 - 我用 RedHat(他们提供我们的 JBOSS 支持)检查了这一点,他们指出 WEB-INF/lib 内容是按照 java.io.File.listFiles() 指定的顺序添加的 -这不是保证订单。【参考方案2】:

Order of class loading from a .war file 已回复此问题

WEB-INF/classes 在 WEB-INF/lib 之前加载

【讨论】:

以上是关于WEB-INF/lib 内容的 JBOSS 排序的主要内容,如果未能解决你的问题,请参考以下文章

在Tomcat 5上控制WEB-INF / lib中jar的类路径排序?

JBoss 6 上的 JSF 1.2 和 EL 表达式未解决

jBPM 的Servet 的WEB-INF\lib 中需要哪些Drools JARS?

如何在eclipse中使用Ivy + IvyDE将不同的jar放到lib和web-inf/lib中

在tomcat类路径中包含web-inf / lib中的目录

在 JBoss 7.1 中使用 log4j