2

我正在尝试使用 AXIS 1 和 Commons Logging 追踪我在 WAS 6.1 中遇到的问题。我的 EAR 最后设置为父级。耳边是 commons-logging、Axis 和一个使用 Axis 的客户端 jar。客户端 jar 中的类是从 WAR 中调用的。

WAR 调用客户端,客户端调用轴 jar,需要 commons-logging。但 EAR 似乎并没有从自身加载公共日志记录。看起来 commons-logging 来自 WebSphere。

然后 WAR 中的另一个类直接请求 commons-logging 并且 EAR 似乎正在加载它。结果我收到了这个错误: org.apache.commons.logging.impl.LogFactoryImpl 与 org.apache.commons.logging.LogFactory 不兼容

我能做些什么来防止这种情况发生吗?我读错了情况吗?

4

1 回答 1

0

由于 commons-logging 和 Axis 1 都内置在 WAS 6.1 中,我会尝试将它们从 EAR 和 WAR 中完全删除;然后,您可以将您的类加载器策略设置为默认的“PARENT_FIRST”,这当然更强大。

您仍然需要 Axis 和 jcl 来编译您的代码,因此只需将它们从 EAR 中删除。如果您使用 Maven,这意味着将它们的范围更改为“已提供”,其中 Ant 将为 ear 任务单独构建 jar 列表,使用 Eclipse EAR 项目 - 从部署程序集中删除适当的 jar。

如果您能提供简短的信息,我将不胜感激。

于 2011-10-08T10:57:37.183 回答