我有一个 war 文件(实际上不是我自己的,它是 Apache ODE 1.2)由于类加载器问题以及与 wsdl4j 的特定不兼容而无法部署到 WAS 6.1 中。 如果我手动编辑 ODE 的类加载器并为 wsdl4j1.6.1 创建一个共享库,一切都很好。
但是,客户回来说这是 Not Acceptable ,我应该提供一个独立安装的耳朵,不涉及任何手动步骤。
我已经能够构建打包 war 的 ear 文件,但我找不到任何关于如何在 ear 中包含共享库的相关信息 - 并且在类加载器开始时使用它(需要优先于与 WAS 捆绑在一起的 wsdl4j)。我需要修改 ear 文件结构吗?还是 application.xml?
任何人都可以提供任何帮助吗? 正如您可能猜到的那样,我来自“tomcat 只需要一个 war 文件”的背景,正在努力掌握 ear 文件。
我的 application.xml 只包含: http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> XXX颂歌 颂歌 war 颂 等等
最佳答案
只需三个简单的步骤即可完成此任务
- 将jar文件放入耳中,我们 通常创建一个 lib 目录, 但这不是必需的。
- 将 war list 更新为 包含这个 jar 文件。
- 为您的耳朵设置类加载策略 PARENT_LAST。这需要 加载您的本地(耳朵)类(class) 在服务器加载之前。
编辑: 作为替代方案,因为您只是使用 EAR 来包装 WAR,而不是实际共享 jar 文件。
- 将jar放到WAR的lib目录下。
- 为您的耳朵设置类加载策略 PARENT_LAST。这需要 加载您的本地(耳朵)类(class) 在服务器加载的那些之前。我通过 RAD 通过编辑 application.xml 文件来完成此操作。它是 IBM 特定的配置,因此如果您不使用 RAD,则必须找出要手动更改的文件。
这应该会让您在应用服务器之间进行持续的 war 。
关于java - 如何在 websphere 6.1 中为 ear 配置类加载器(特别是 wsdl4j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/689904/