0

我正在尝试将战争部署到 IBM Websphere Application Server Community Edition (WASCE) 3.0.0.3。我在 WASCE 3.0.0.3 附带的那些 jar 之间遇到了一些 jar 冲突问题,并且这些 jar 来自我们的应用程序依赖项。最后,我通过使用 geronimo-web.xml 中的以下属性来强制 WASCE 从我的应用程序加载 jar 来解决问题。

<import-package>!the.conflicting.jars</import-package>

但是,我想强制 WASCE 始终首先从我的应用程序中获取 jar,即反转默认的类加载器行为以首先从应用程序加载。在这种情况下要更改的正确配置是什么?


经过一番搜索,根据链接,WASCE 3.0 是基于 Geronimo 3.0 的。我发现<inverse-classloading>geronimo-web.xml 中的设置可能会有所帮助。但是下面Apache Geronimo 3.0 网站上的两个文档提到 Geronimo 3.0 上不再提供此功能

从 G 2.x 迁移到 G 3.x中,它说:

反向类加载Geronimo 3.0 不支持部署计划中的元素。

geronimo-web.xml中,

<sys:environment>元素包含以下元素:

...

<inverse-classloading>元素可用于指定要为此模块反转标准类加载器委托。Geronimo 类加载器委托遵循 Java EE 5 规范,正常行为是在检查当前类加载器之前从父类加载器(如果可用)加载类。………… (3.0不支持,<import-package/>改用)


那么如果<inverse-classloading>不再可用,WASCE 3.0.0.3 中这个属性的等价物是什么?或者我应该如何使用<import-package/>所有重复的罐子来做到这一点?

4

1 回答 1

0

在您提到的链接中,您将找到以下部分

<sys:environment>

XML 元素使用 Geronimo System 命名空间,该<sys:environment>命名空间用于指定公共库和模块范围服务的公共元素,并在此处记录:

http://geronimo.apache.org/schemas-3.0/docs/geronimo-module-1.2.xsd.html

该元素包含以下元素:

<moduleId>元素用于为部署在 Geronimo 服务器中的 Web 应用程序提供配置名称。它包含 groupId、artifactId、版本和模块类型的元素。模块 ID 通常在四个组件之间用斜线打印,例如 GroupID/ArtifactID/Version/Type。

<dependencies>元素用于提供 Web 模块所依赖的配置和第三方库。这些配置和库通过 Geronimo 类加载器层次结构对 Web 模块可用。

<bundle-activator>元素用于在 Web 应用程序的清单文件中创建 Bundle-Activator 标头。它指定部署在 Geronimo 服务器中的 Web 应用程序的入口点。

<bundle-classPath>元素用于在 Web 应用程序的清单文件中创建 Import-Package 标头。它包含目录列表或嵌入的 jar 文件,也称为捆绑资源并扩展 Web 应用程序的类路径。

<import-package>元素用于在 Web 应用程序的清单文件中创建 Import-Package 标头。它指定在启动 Web 应用程序之前要解析的包列表。用于<import-package>!packagename</import-package>覆盖服务器中的特定包。

<export-package>元素用于在 Web 应用程序的清单文件中创建 Export-Package 标头。它指定要导出的包列表。

<require-bundle>元素用于在 Web 应用程序的清单文件中创建 Require-Bundle 标头。它指定要绑定到的捆绑包列表,无论它们的包。

<dynamic-import-package>元素用于在 Web 应用程序的清单文件中创建 DynamicImport-Package 标头。它指定要动态导入的打包列表,尤其是在类加载期间。

所以基本上,你需要添加以下指令,即

<sys:import-package>!package-class-name-here*</sys:import-package>节内<sys:environment>。通常在 Application Context-Root 指令之前。

如您所知,这是嵌入在应用程序 WAR/EAR 中的 geronimo-web.xml 中——如链接中所述

http://geronimo.apache.org/GMOxDOC30/geronimo-webxml.html

于 2015-03-25T16:10:38.460 回答