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中