3.3. 在 Java 应用程序中打包和部署红帽流程自动化管理器项目
如果要从您自己的 Java 应用程序内部部署项目到配置的 KIE 服务器,您可以使用 KieModuleModel 实例以编程方式创建一个 kmodule.xml 文件来定义 KIE 基础和 KIE 会话,然后将项目中的所有资源添加到 KIE 虚拟文件系统 KieFileSystem 中。
先决条件
- 您有一个包含红帽流程自动化管理器商业资产的 Java 应用程序。
-
KIE Server 已安装,并且配置了
kie-server用户访问权限。有关安装选项,请参阅 规划 Red Hat Process Automation Manager 安装。
流程
可选: 如果您的项目包含 Decision Model 和 Notation (DMN)资产,请将以下内容添加到 Java 项目的相关类路径中,以启用 DMN 可执行文件模型。DMN 可执行模型启用 DMN 决策表逻辑,以便更有效地评估。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;version> 是项目中当前使用的 Red Hat Process Automation Manager 的 Maven 工件版本(如 7.59.0.Final-redhat-00006)。注意考虑将 Red Hat Business Automation Manager (BOM)依赖项添加到项目的
pom.xml文件中,而不是为单独的依赖项指定 Red Hat Process Automation Manager <version>。Red Hat Business Automation BOM 适用于 Red Hat Decision Manager 和 Red Hat Process Automation Manager。添加 BOM 文件时,项目中包含来自提供的 Maven 存储库的正确传输依赖项版本。BOM 依赖项示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关 Red Hat Business Automation BOM 的更多信息,请参阅 Red Hat Process Automation Manager 和 Maven 库版本之间的映射是什么?
使用
KieServicesAPI 使用所需的 KIE 基础和 KIE 会话创建一个KieModuleModel实例。KieServicesAPI 可让您访问所有 KIE 构建和运行时配置。KieModuleModel实例为您的项目生成kmodule.xml文件。有关
kmodule.xml配置的详情请参考 第 3.1 节 “配置 KIE 模块描述符文件”。将您的
KieModuleModel实例转换为 XML,并将 XML 添加到KieFileSystem。以编程方式创建
kmodule.xml并将其添加到KieFileSystemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将项目中任何剩余的红帽流程自动化管理器资产添加到
KieFileSystem实例中。工件必须采用 Maven 项目文件结构。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,项目资产作为
String变量和Resource实例添加。您还可以使用KieResourcesfactory 创建Resource实例,也由KieServices实例提供。KieResources类提供了将InputStream,URL, 和File对象,或一个代表您的文件系统路径的String转换到一个KieFileSystem可以管理的Resource实例的方法。当将项目工件添加到
KieFileSystem时,您还可以为Resource对象明确分配一个ResourceType属性:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用带有
buildAll ()方法的KieBuilder来构建KieFileSystem的内容,并创建一个 KIE 容器来部署它:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 构建
ERROR表示项目编译失败,没有生成KieModule,且不会添加到KieRepository单例。WARNING或INFO结果表示项目编译成功,以及构建过程的相关信息。注意要从可执行规则模型在 Java 应用程序项目中构建规则资产,请验证以下依赖项是否在项目的
pom.xml文件中:<dependency> <groupId>org.drools</groupId> <artifactId>drools-model-compiler</artifactId> <version>${rhpam.version}</version> </dependency><dependency> <groupId>org.drools</groupId> <artifactId>drools-model-compiler</artifactId> <version>${rhpam.version}</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 红帽流程自动化管理器中的规则资产需要这个依赖项,以便从可执行规则模型构建。此依赖项作为 Red Hat Process Automation Manager 核心打包的一部分提供,但根据您的 Red Hat Process Automation Manager 升级历史记录,您可能需要手动添加这个依赖项来启用可执行规则模型行为。
验证依赖项后,使用以下修改后的
buildAll ()选项启用可执行模型:kieBuilder.buildAll(ExecutableModelProject.class)
kieBuilder.buildAll(ExecutableModelProject.class)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关可执行规则模型的详情请参考 第 3.4 节 “可执行规则模型”。