java - 如何在 websphere 6.1 中为 ear 配置类加载器(特别是 wsdl4j)

标签 java ant websphere

我有一个 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 颂 等等

最佳答案

只需三个简单的步骤即可完成此任务

  1. 将jar文件放入耳中,我们 通常创建一个 lib 目录, 但这不是必需的。
  2. 将 war list 更新为 包含这个 jar 文件。
  3. 为您的耳朵设置类加载策略 PARENT_LAST。这需要 加载您的本地(耳朵)类(class) 在服务器加载之前。

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

  1. 将jar放到WAR的lib目录下。
  2. 为您的耳朵设置类加载策略 PARENT_LAST。这需要 加载您的本地(耳朵)类(class) 在服务器加载的那些之前。我通过 RAD 通过编辑 application.xml 文件来完成此操作。它是 IBM 特定的配置,因此如果您不使用 RAD,则必须找出要手动更改的文件。

这应该会让您在应用服务器之间进行持续的 war 。

关于java - 如何在 websphere 6.1 中为 ear 配置类加载器(特别是 wsdl4j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/689904/

相关文章:

java - 使用 jsoup 抓取 youtube href

java - 将二进制文件保存到 OutputStream 并返回到 InputStream

java - 在 WebSphere 上,ExternalContext 的 Request 对象上的 getQueryString 返回 null

java - 从 portlet 中的 doView 方法重定向

java - Ant Ivy 不会设置编译类路径

java - 获取 xs :timestamp instead of xs:date when client application calls our jax-ws api

eclipse - 为什么Eclipse不需要我配置JDK?

java - 组织小型公用事业功能

java - Ant类路径顺序

java - ANT 到 Maven 的迁移。 build.xml 的 Maven 替代方案