配置应用程序使用类装入器的方式

您可以配置应用程序和 Web 模块用来装入类的类装入器:是使用他们自己的类装入器来装入类还是使用不同的类装入器;并且可以配置更新应用程序文件时的类重新装入行为。 类装入器允许应用程序访问可用类和资源的存储库。

准备工作

本主题假定应用程序或模块已部署在服务器上。

以下说明适用于本主题中的 xmi 文件引用:
受支持的配置: 对于 IBM® 扩展和绑定文件,根据您使用的是Java™ EE 5 之前的应用程序或模块,还是 Java EE 5 或更高版本的应用程序或模块, .xmi.xml 文件扩展名有所不同。 IBM 扩展或绑定文件名为 ibm-*-ext.xmiibm-*-bnd.xmi ,其中 * 是扩展或绑定文件的类型,例如 appapplicationejb-jarweb。 存在下列条件:
  • 对于使用版本 5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须为 .xmi
  • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须为 .xml。 如果应用程序或模块随附 .xmi 文件,那么产品会忽略 .xmi 文件。

但是, Java EE 5 或更高版本的模块可以存在于包含Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中。

ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

有关此任务

类装入器影响应用程序及其模块能否找到他们有效运行所需的资源。 可以选择让应用程序和 Web 模块使用他们自己的类装入器来装入类,也可以让他们使用父类装入器。

应用程序类装入器对与应用程序关联的 Enterprise JavaBeans (EJB) 模块,共享库,资源适配器归档 (RAR 文件) 和依赖关系 Java 归档 (JAR) 文件进行分组。 依赖项 JAR 文件是包含企业 Bean 和 Servlet 都可使用的代码的 JAR 文件。

应用程序类装入器是 Web 应用程序归档 (WAR) 类装入器的父代。 缺省情况下,Web 模块具有其自己的 WAR 类装入器,以装入 Web 模块的内容。 应用程序类装入器的 WAR 类装入器策略值确定是使用 WAR 类装入器还是应用程序类装入器来装入 Web 模块的内容。

还可以选择当应用程序文件被更新时是否重新装入类。 对于 EJB 模块或任何非 Web 模块,如果启用类重新装入功能,那么会导致应用程序服务器运行时停止应用程序并接着将其启动以重新装入应用程序类。 对于 Web 模块 (例如 Servlet 和 JavaServer Pages (JSP) 文件) ,仅当 ibm-web-ext.xmi 文件中的 IBM 扩展 reloadingEnabled 设置为 true时, Web 容器才会重新装入 Web 模块。

要配置应用程序和 Web 模块使用类装入器,请使用管理控制台的 类装入和更新检测 页面。

注意: 如果应用程序正在运行,那么更改应用程序设置会导致应用程序重新启动。 在独立服务器上,应用程序在您保存更改后将重新启动。 在多服务器产品上,应用程序将在您保存更改后重新启动,并且在安装应用程序的节点上,文件将同步。 要控制对多服务器产品进行同步的时间,请取消选择控制台首选项页面上的将更改与节点同步

过程

  1. 单击 应用程序 > 应用程序类型 > WebSphere 企业应用程序 > application_name > 类装入和更新检测 以访问 " 类装入和更新检测 " 页面。
  2. 指定在应用程序或它的文件被更新时是否重新装入应用程序类。

    缺省情况下,未启用类重新装入。 选择覆盖 Web 模块和 EJB 模块的类重新装入设置以选择重新装入应用程序类。 您可为 EJB 模块和 Web 模块(如 Servlet 和 JSP 文件)指定不同的值。

  3. 指定扫描应用程序的文件系统以查找已更新文件的间隔秒数。

    仅当启用了类重新装入时,对更新文件的轮询时间间隔指定的值才会生效。 缺省值为企业应用程序(EAR 文件)的 IBM 扩展 (META-INF/ibm-application-ext.xmi) 中的重新装入时间间隔属性的值。 您可为 EJB 模块和 Web 模块(如 Servlet 和 JSP 文件)指定不同的值。

    要启用重新装入,指定大于零的整数值(例如 1 到 2147483647)。

    要禁用重新装入功能,请指定零 (0)。

  4. 指定应用程序的类装入器顺序。

    应用程序类装入器顺序指定:类装入器在装入类时是首先在父类装入器中进行搜索,还是首先在应用程序类装入器中进行搜索。 缺省是在应用程序类装入器装入一个类中搜索之前,在父类装入器中搜索。

    类装入器顺序选择下列其中一个值:

    选项 描述
    父类装入器装入的类最先 导致类装入器首先在父类装入器中搜索,以装入类。 此值是 Development Kit 类装入器和 WebSphere® Application Server 类装入器的标准。
    类已装入并且是先使用本地类装入器(父类最后) 导致类装入器首先在应用程序类装入器中搜索,以装入类。 通过指定 Classes loaded with local class loader first (parent last),应用程序可以覆盖父类装入器中包含的类。
    注意: 如果您混合使用了被覆盖的类和未被覆盖的类,那么指定 Classes loaded with local class loader first (parent last) 值可能会导致 LinkageErrors 或 ClassCast异常消息。
  5. 指定使用单个还是多个类装入器来装入应用程序的 Web 应用程序归档(WAR 文件)。

    缺省情况下,Web 模块具有其自己的 WAR 类装入器,以装入 WEB-INF/classesWEB-INF/lib 目录的内容。 缺省 WAR 类装入器值为 Class loader for each WAR file in application,它使用单独的类装入器来装入每个 WAR 文件。 将值设置为 Single class loader for application 会导致应用程序类装入器装入 Web 模块内容以及与应用程序关联的 EJB 模块,共享库, RAR 文件和依赖项 JAR 文件。 应用程序类装入器是 WAR 类装入器的父代。

    WAR 类装入器策略选择下列两个值中的一个:

    选项 描述
    应用程序中每个 WAR 文件的类装入器 为每个 WAR 文件使用不同的类装入器。
    应用程序的单个类装入器 使用单个类装入器,以在应用程序中装入所有 WAR 文件。
  6. 单击确定

结果

应用程序或模块配置已更改。 应用程序或独立 Web 模块将重新启动以使更改生效。

下一步做什么?

保存对管理配置所作的更改。