2

我有一个 war 文件(实际上不是我自己的,它是 Apache ODE 1.2),由于类加载器问题以及与 wsdl4j 的特定不兼容而无法部署到 WAS 6.1。如果我手动编辑 ODE 的类加载器并为 wsdl4j1.6.1 创建一个共享库,一切都很好。

但是,客户回来说这是不可接受的,我应该提供一个独立安装的耳朵,不涉及手动步骤。

我已经能够构建捆绑战争的耳朵文件,但我找不到任何有关如何在耳朵中包含共享库的相关信息 - 并且在类加载器的开头使用它(需要优先考虑wsdl4j 与 WAS 捆绑在一起)。我需要修改ear 文件结构吗?还是application.xml?

任何人都可以提供任何帮助吗?正如您可能猜到的,我来自“tomcat 只需要一个战争文件”背景,努力掌握耳朵文件。

我的 application.xml 只包含: http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> XXX ODE ode.war ode 等

4

1 回答 1

1

您只需三个简单的步骤即可完成此操作

  1. 将jar文件放在ear中,我们一般会创建一个lib目录,但这不是必须的。
  2. 更新战争清单以包含此 jar 文件。
  3. 将您耳朵的类加载策略设置为 PARENT_LAST。这是在服务器加载本地类之前加载本地(耳朵)类所必需的。

编辑:作为替代方案,因为您仅使用 EAR 来包装 WAR 而实际上并未共享 jar 文件。

  1. 将jar 放在WAR 的lib 目录中。
  2. 将您耳朵的类加载策略设置为 PARENT_LAST。这是在服务器加载本地类之前加载本地(耳朵)类所必需的。我通过 RAD 编辑 application.xml 文件来做到这一点。它是 IBM 特定的配置,因此如果您不使用 RAD,您将必须弄清楚要手动更改哪些文件。

这应该会让您在应用服务器之间发生持续的战争。

于 2009-03-27T17:49:41.300 回答