【发布时间】:2012-04-18 18:33:02
【问题描述】:
我正在 WAS 7.0 中配置一个 Java Web 模块。我的所有模块 JAR 都在 WEB-INF/lib 目录中,它们都在加载。我的问题是它们加载的顺序。我有 2 个罐子:someJar.jar 和 aPatchForSomeJar.jar,它们都位于 WEB-INF/lib 中。 aPatchForSomeJar.jar 修补了someJar.jar 中的一些类。问题是模块类路径上的someJar.jar 高于补丁。这会导致原始 jar 中的类被用于修补 jar 中的修补版本。
在我的开发环境(win XP 上的 RAD 7.5)中,模块类路径按字母顺序加载(这导致 aPatchForSomeJar.jar 在 someJar.jar 之前加载)。但是,当部署到测试环境(GNU/Linux 上的 WAS 7.0)时,模块类路径似乎是以随机顺序加载的(至少绝对不是字母顺序),其中补丁是在原始 Jar 之后加载的。
有人知道我如何更改模块加载 WEB-INF/lib jar 的顺序吗?
【问题讨论】:
-
我还不能确认,但有传言说 7.0 的模块类加载器是一个“惰性加载器”......所以它会根据需要加载每个 jar。这将解释类路径看似随机的顺序。如果我能找到一些文件或对此的确认,我会更新我的问题。
标签: websphere websphere-7