当 API 方法处理人员任务时,将发生 API 事件。 使用 API 事件处理程序插件服务提供者接口 (SPI) 来创建插件,以处理 API 所发送的任务事件或具有同等 API 事件的内部事件。
关于本任务
完成下列步骤以创建 API 事件处理程序。
过程
- 编写实现 APIEventHandlerPlugin5 接口或扩展 APIEventHandler 实现类的类。
此类可以调用其他类的方法。
- 如果使用 APIEventHandlerPlugin5 接口,那么必须实现 APIEventHandlerPlugin5 接口和 APIEventHandlerPlugin 接口的全部方法。
- 如果扩展 APIEventHandler 实现类,那么覆盖所需的方法。
此类在 Java™ Platform, Enterprise Edition (Java EE) Enterprise 应用程序的上下文中运行。 确保此类及其辅助控件类遵循 EJB 规范。
注意 :如果您想从这个类中调用 HumanTaskManagerService ,请不要调用更新产生事件的任务的方法。 此操作可能会导致数据库中的任务数据不一致。
- 将该插件类及其辅助控件类组装到 JAR 文件中。
可以通过下列其中一种方法使 JAR 文件作为下列项可用:
- 作为应用程序 EAR 文件中的实用程序 JAR 文件。
- 作为与应用程序 EAR 文件一起安装的共享库。
- 作为与 TaskContainer 应用程序一起安装的共享库。 在这种情况下,插件可用于所有任务。
- 在 JAR 文件的 META-INF/services/ 目录中为插件创建服务提供者配置文件。
配置文件提供用于识别和装入插件的机制。 此文件符合 Java EE 服务提供者接口规范。
- 创建名为
com.ibm.task.spi.plug-in_nameAPIEventHandlerPlugin的文件,其中 Plug-in_name 是插件的名称。例如,如果插件名为 Customer,并且实现了 com.ibm.task.spi.APIEventHandlerPlugin5 接口,那么配置文件名为 com.ibm.task.spi.CustomerAPIEventHandlerPlugin。
- 在此文件中的第一个既非注释行(以编号符号 (#) 开头的行)也非空白的行中,指定步骤 1 中创建的插件类的标准名称。
例如,如果您的插件类名为 MyAPIEventHandler,并且它位于 com.customer.plugins 包中,那么配置文件的第一行必须包含以下条目:com.customer.plugins.MyAPIEventHandler。
结果
您具有包含用于处理 API 事件的插件的可安装 JAR 文件,以及可用于装入该插件的服务提供者配置文件。备注 :您只有一个eventHandlerName可用于注册API事件处理程序和通知事件处理程序。 如果要同时使用 API 事件处理程序和通知事件处理程序,那么这两个插件实现必须同名,例如,将
Customer 用作 SPI 实现的事件处理程序名。
您可以使用一个类或两个单独的类来实现两个插件。 在两种情况下,您需要在 JAR 文件的 META-INF/services/ 目录中创建两个文件,例如 com.ibm.task.spi.CustomerNotificationEventHandlerPlugin 和 com.ibm.task.spi.CustomerAPIEventHandlerPlugin。
请将插件实现与辅助控件类打包在单个 JAR 文件中。
要更改已生效的实现,请替换共享库中的 JAR 文件,并重新启动服务器。 如果插件属于应用程序 EAR 文件,那么足以重新安装
更新的应用程序。
下一步
现在需要安装并注册该插件,以供人员任务容器在运行时使用。 可以向任务实例、任务模板或应用程序组件注册 API 事件处理程序。