【发布时间】:2015-03-26 03:19:21
【问题描述】:
我正在尝试在 IBM Websphere Application Server Community Edition (WASCE) 3.0.0.3 上部署战争。我在 WASCE 3.0.0.3 附带的那些 jar 之间遇到了一些 jar 冲突问题,并且这些 jar 来自我们的应用程序依赖项。最后,我通过在 geronimo-web.xml 中使用以下属性来强制 WASCE 从我的应用程序加载 jar 来解决问题。
<import-package>!the.conflicting.jars</import-package>
但是,我想强制 WASCE 始终首先从我的应用程序中获取 jar,即反转默认的类加载器行为以首先从应用程序加载。在这种情况下要更改的正确配置是什么?
经过一番搜索,根据link,WASCE 3.0 基于 Geronimo 3.0。我发现在 geronimo-web.xml 中设置 <inverse-classloading> 可能会有所帮助。但是下面Apache Geronimo 3.0 website 上的两个文档提到 Geronimo 3.0 上不再提供此功能
在Migrating from G 2.x to G 3.x 中,它说:
inverse-classloading Geronimo 3.0 不支持部署计划中的元素。
<sys:environment>元素包含以下元素:...
<inverse-classloading>元素可用于指定要为该模块反转标准类加载器委托。 Geronimo 类加载器委托遵循 Java EE 5 规范,正常行为是在检查当前类加载器之前从父类加载器(如果可用)加载类。 ...... ...... (3.0不支持,请改用<import-package/>)
那么如果<inverse-classloading> 不再可用,那么在WASCE 3.0.0.3 中这个属性的等价物是什么?或者对于所有重复的 jar,我应该如何使用 <import-package/> 来执行此操作?
【问题讨论】: