第 30 章 KIE 会话和任务服务的 EJB API
Red Hat Process Automation Manager 提供了一个 Enterprise 3.0.0 (EJB) API,可用于嵌入式用例从应用程序远程访问 KieSession
和 TaskService
对象。EJB API 启用 Red Hat Process Automation Manager 和远程客户应用程序中的进程引擎之间的关闭事务集成。
虽然 KIE 服务器不支持 EJB,但您可以使用 EJB 作为进程引擎的远程协议,类似于使用 KIE 服务器的远程 REST 或 JMS 操作。
EJB 接口的实施是单一独立于框架且与容器无关的 API,可用于特定于框架的代码。EJB 服务通过 Red Hat Process Automation Manager 中的 org.jbpm.services.api
和 org.jbpm.services.ejb
软件包公开。该实施不支持 RuleService
类,但 ProcessService
类会公开一个 execute
方法,供您使用各种与规则相关的命令,如 InsertCommand
和 FireAllRulesCommand
。
Red Hat Process Automation Manager 中的 org.jbpm.services.cdi
软件包也支持上下文和依赖注入(CDI)。但是,为了避免 EJB 集成中的冲突,请不要将 EJB 和 CDI 一起使用。
30.1. 支持的 EJB 服务
如需 Red Hat Process Automation Manager 中的可用企业站(ejb)服务的完整列表,请从红帽客户门户网站下载 Red Hat Process Automation Manager 7.11.0 Maven 存储库,并进入 ~/jboss-rhba-7.11.0.GA-maven-repository/org/jbpm/jbpm-services-ejb
。https://access.redhat.com/jbossnetwork/restricted/listSoftware.html
为 venv 服务提供 EJB 接口的工件位于以下软件包中:
-
org.jbpm.services.ejb.api
:包含 EJB 接口的 jBPM 服务 API 的扩展 -
org.jbpm.services.ejb.impl
:在核心服务实施之上包含 EJB 打包程序 -
org.jbpm.services.ejb.client
:包含 EJB 远程客户端实施,仅在 Red Hat JBoss EAP 上被支持
org.jbpm.services.ejb.api
软件包包含以下可与远程 EJB 客户端一起使用的服务接口:
-
DefinitionServiceejbRemote
:使用此接口收集有关进程(ID、名称和版本)、进程变量(名称和类型)、定义的可重复使用的子进程、域特定服务、用户任务和用户任务输入和输出的信息。 -
DeploymentServiceejbRemote
:使用此接口来启动部署和未部署。接口包括方法deploy
,undeploy
,getRuntimeManager
,getDeployedUnits
,isDeployed
,activate
,deactivate
, 和getDeployedUnit
。通过构建RuntimeManager
实例,通过DeploymentUnit
实例调用部署方法,将单元部署到运行时引擎中。成功部署后,会创建一个
DeployedUnit
实例并缓存给以后使用。(为了使用这些方法,您必须在 Maven 存储库中安装项目的工件。) -
ProcessServiceejbRemote
:使用此接口来控制一个或多个进程和工作项目的生命周期。 -
RuntimeDataServiceejbRemote
:使用此接口检索与运行时间相关的数据,如进程实例、进程定义、节点实例信息和变量信息。这个界面包括几个方便的方法,用于根据所有者、状态和时间收集任务信息。 -
UserTaskServiceejbRemote
:使用此接口来控制用户任务的生命周期。界面包括几个方便的方法,用于与用户任务交互,如激活
、启动
、停止
,并执行
。 -
QueryServiceejbRemote
:使用此接口进行高级查询。 -
ProcessInstanceMigrationServiceejbRemote
:部署新版本的进程定义时,使用此接口来迁移进程实例。
如果您在同一 KIE 服务器实例上运行 EJB 应用程序和 Business Central,您可以通过设置 org.jbpm.deploy.sync.int
系统属性来同步 EJB 和 Business Central 之间的信息。在服务完成同步后,您可以使用 REST 操作访问更新的信息。
Red Hat Process Automation Manager 中的 EJB 服务适用于嵌入式用例。如果在同一 KIE 服务器实例上运行 EJB 应用程序和 Business Central,还必须在 EJB 应用程序的类路径中添加 kie-services
软件包。