修改 OSGi 组合单元的配置

可以修改包含企业 OSGi 应用程序的组合单元的配置信息。 OSGi 组合单元由一个 EBA 资产、(可选)一个或多个组合捆绑软件扩展以及用于在业务级别应用程序中运行该资产和组合捆绑软件扩展的配置信息组成。 配置信息可以为 OSGi 应用程序包含 HTTP 会话管理、上下文根、虚拟主机、安全角色、run-as 角色、会话企业 bean 的 JNDI 映射、EJB 引用的 JNDI 映射以及 Web 应用程序或蓝图资源引用。

准备工作

可以按本主题中所述使用管理控制台来修改 OSGi 组合单元的配置,也可以按 使用 wsadmin 命令修改 OSGi 组合单元的配置中所述使用 wsadmin 命令来修改 OSGi 组合单元的配置。

有关此任务

OSGi 组合单元由一个 EBA 资产、(可选)一个或多个组合捆绑软件扩展以及下列某些或全部配置信息组成:
  • 从组合单元到目标应用程序服务器、Web 服务器或集群的映射。
  • 应用程序的会话管理器、上下文根或虚拟主机的配置。
  • 从企业 bean 到 JNDI 名称的映射。
  • 至任何相关联的 Web 应用程序或蓝图资源引用的绑定。
  • 从安全角色到特定用户或组的映射。

将 EBA 资产或组合捆绑软件扩展添加到组合单元时,请先指定该资产或组合捆绑软件扩展的配置。 如果以后更改了该资产或组合捆绑软件扩展中的捆绑软件,或者必须重新映射资源,那么可以更新该配置。 例如,如果您更新 EBA 资产中的捆绑软件或替换组合捆绑软件扩展,那么可能会引入需要其他配置的资源,例如新的或已更改的蓝图资源引用或安全角色映射。

本主题描述了用于修改 OSGi 组合单元的配置的特定任务。

过程

  1. 启动管理控制台。
  2. 浏览至 应用程序 > 应用程序类型 > 业务级应用程序 > 应用程序名称 > composition_unit_name

    将显示“组合单元设置”面板。

  3. 其他属性 部分下,单击以下任何选项,然后根据需要修改设置。
    • 会话管理

      为 Web 应用程序捆绑软件配置 HTTP 会话管理。

      仅当 OSGi 应用程序使用 Web 应用程序捆绑软件时,才会显示会话管理选项。

    • Web 模块的上下文根

      从列表中选择 Web Application Bundle (WAB),然后输入该 WAB 的上下文根。 例如,/sample。 有关更多信息,请参阅 Web 模块的上下文根 [设置]

      仅当应用程序使用 Web 应用程序捆绑软件时, Web 模块的上下文根 选项才可视。

    • 消息驱动的 bean 侦听器

      对于在 ejb-jar.xml 文件或组合单元的 @MessageDriven 注释中定义的每个消息驱动的 Bean (MDB) ,可以指定将 MDB 侦听器绑定到 MDB 所需的设置。 通过将侦听器绑定至 MDB 来配置 MDB 与 JMS 目标(MDB 从其接收消息)的关联。 有关更多信息,请参阅 消息驱动的 bean 的侦听器 [设置]

      仅当 OSGi 应用程序至少包含一个具有至少一个 MDB 的 EJB 捆绑软件时, 消息驱动的 bean 的侦听器 选项才可视。

    • EJB JNDI 名称

      对于组合单元中的每个会话企业 bean,可以指定该企业 bean 在运行时环境中使用的 JNDI 名称。 有关更多信息,请参阅 EJB JNDI 名称 [设置]

      仅当 OSGi 应用程序至少包含一个具有至少一个会话企业 Bean 的 EJB 捆绑软件时, EJB JNDI 名称 选项才可视。

    • EJB 引用

      对于在 ejb-jar.xml 文件, web.xml 文件或组合单元中的 @EJB 注释中定义的每个 EJB 引用,可以指定用于在运行时环境中识别 EJB 引用的 JNDI 名称。 有关更多信息,请参阅 EJB 引用 [设置]

      仅当 OSGi 应用程序至少包含一个在 ejb-jar.xml 文件, web.xml 文件或 @EJB 注释中定义的 EJB 引用时, EJB 引用 选项才可视。

    • EJB 资源引用

      将显示此资产中可用 EJB 资源引用的列表。 即,类型为 resource-ref (资源引用) 的资源,如 Java™ 规范 JSR-250: Java 平台的公共注释。 对于每个引用,指定资源在运行时环境中使用的 JNDI 名称。 有关更多信息,请参阅 EJB 资源引用 [设置]

      仅当 OSGi 应用程序至少包含一个在 ejb-jar.xml 文件中定义的资源引用,或者通过企业 Bean 上的 @Resource 注释定义的资源引用时, EJB 资源引用 选项才可视。

    • EJB 消息目标引用

      将显示此资产中可用 EJB 消息目标引用和资源环境引用的列表。 即,类型为 message-destination-ref (消息目标引用) 或 resource-env-ref (资源环境引用) 的资源,如 Java 规范 JSR-250: Java 平台的公共注释。 对于每个引用,指定资源在运行时环境中使用的 JNDI 名称。 有关更多信息,请参阅 EJB 消息目标引用 [设置]

      仅当 OSGi 应用程序包含至少一个 JMS 消息目标引用或资源环境引用 (在 ejb-jar.xml 文件中定义) 或通过企业 Bean 上的 @Resource 注释定义) 时, EJB 消息目标引用 选项才可视。

    • EJB 环境条目

      对于在 ejb-jar.xml 文件的 env-entry 元素中或在组合单元的 @Resource 注释中定义的每个简单环境条目,您可以指定环境条目的值。 有关更多信息,请参阅 EJB 环境条目 [设置]

      仅当 OSGi 应用程序至少包含一个在 ejb-jar.xml 文件或 @Resource 注释中定义的简单环境条目时, EJB 环境条目 选项才可视。

    • Web 模块的虚拟主机

      将显示此资产中可用 WAB 的列表。 对于每个 WAB,您可以通过从列表中选择其他 WAB 来更改相关联的虚拟主机。 如果在 WAB 的 ibm-web-bnd.xml.xmi 文件中指定现有虚拟主机,那么缺省情况下将设置指定的虚拟主机。 否则,缺省虚拟主机设置为 default_host有关更多信息,请参阅 Web 模块的虚拟主机 [设置]

      仅当应用程序使用 Web 应用程序捆绑软件时, Web 模块的虚拟主机 选项才可视。

    • 安全角色到用户或组的映射

      根据需要更改安全性映射。 有关更多信息,请参阅 安全角色到用户或组的映射 [设置]

      仅当应用程序使用安全角色时, 安全角色到用户或组的映射 选项才可视。

    • 用户的 RunAs 角色

      可以将指定的用户标识和密码映射到 RunAs 角色。 此映射使您可以为各个用户指定特定于应用程序的特权,以便他们可以使用其他用户标识运行特定的任务。 有关更多信息,请参阅 RunAs 角色 [集合]

      仅当应用程序使用 RunAs 角色时, RunAs 角色 选项才可视。

    • 蓝图资源引用

      将显示此资产中可用蓝图资源引用的列表。 对于每个引用,您可以从列表中选择认证别名。 仅当缺省认证别名 (来自 ibm-eba-bnd.xml 文件) 存在于每个目标服务器或集群上时,才会提供这些别名。 有关更多信息,请参阅 Blueprint resource references [Settings]

      仅当捆绑软件包含蓝图资源引用声明时, 蓝图资源引用 选项才可视。

    • Web 模块消息目标引用

      将显示此资产中可用 Web 应用程序消息目标引用和资源环境引用的列表。 即,类型为 message-destination-ref (消息目标引用) 或 resource-env-ref (资源环境引用) 的资源,如 Java 规范 JSR-250: Java 平台的公共注释。 对于每个引用,指定资源在运行时环境中使用的 JNDI 名称。 有关更多信息,请参阅 Web 模块消息目标引用 [设置]

      仅当捆绑软件包含 Web 应用程序时, 将 Web 模块消息目标引用绑定到受管对象 向导步骤和 Web 模块消息目标引用 属性才可视。

    • Web 模块资源引用

      将显示此资产中可用 Web 应用程序资源引用的列表。 即,类型为 resource-ref (资源引用) 的资源,如 Java 规范 JSR-250: Java 平台的公共注释。 对于每个引用,指定资源在运行时环境中使用的 JNDI 名称。 可以设置认证属性和扩展的数据源定制属性,它们会影响在运行时访问资源的方式。 要指定 JNDI 名称映射,请在框中输入 JNDI 名称,或者单击 浏览 ... 然后从 可用资源列表中选择资源引用。 要修改认证方法或设置应用于数据库连接的扩展数据源定制属性,请选择单个引用,然后单击 修改资源认证方法 ...扩展属性 ... 有关更多信息,请参阅 Web 模块资源引用 [设置]

      仅当捆绑软件包含 Web 应用程序时, Web 模块资源引用 选项才可视。

  4. 将更改保存到配置库。

结果

保存对组合单元的更改时,将更新相关联的业务级别应用程序以使用新配置。 如果业务级别应用程序正在运行,那么将立即应用捆绑软件和配置更新。

如果有可能(即,取决于更新的性质),系统会应用更新而无需重新启动应用程序。 如果您更新只为应用程序的其他部分提供 OSGi 服务的捆绑软件,那么仅重新启动该捆绑软件。 如果您更新为其他捆绑软件提供一个或多个包的捆绑软件,那么重新启动该捆绑软件以及它们为其提供包的任何捆绑软件。 但是,如果添加了新包或服务依赖性,或者除去了现有包或服务依赖性,那么将重新启动应用程序;新添加的包和服务可以来自新供应的捆绑软件或已供应的捆绑软件。

如果您的应用程序具有引用了服务捆绑软件中企业 bean 的客户机捆绑软件,那么为了防止在更新该服务捆绑软件时重新启动该应用程序,请按以下其中一种方式配置企业 bean 依赖性:
  • 在服务捆绑软件的捆绑软件清单文件的 Export-EJB 头中声明企业 Bean ,以便在 OSGi 服务注册表中注册企业 Bean ,并使用客户机捆绑软件的 "蓝图" XML 文件中的引用元素来注入和调用企业 Bean; 有关更多信息, 请参阅 参考和蓝图容器。 此过程是配置 EJB 依赖性的首选方法。
  • 在客户机捆绑软件中,在 @EJB 注释或绑定 XML 文件中声明对目标企业 Bean 的 EJB 引用,并在部署应用程序时将 EJB 引用映射到 EJB JNDI 名称; 有关更多信息,请参阅 EJB 引用 [设置]
如果您未通过使用 Export-EJB 头或将 EJB 引用绑定至 JNDI 来声明企业 bean,那么当您部署应用程序时会自动生成 JNDI 绑定(只要在 EJB 类实现的接口与在 EJB 引用中指定的接口之间有且仅有一个匹配)。 但是,生成的 JNDI 名称包含捆绑软件版本,该捆绑软件版本在您更新捆绑软件时会更改;在此情况下,当您更新组合单元时,会重新生成 JNDI 以包含更新后的版本,并且此配置更改会导致应用程序重新启动。

与任何重新启动操作相关的消息将写入 WebSphere Application Server SystemOut.log 文件。