7.2. 使用 KIE 服务器 Java 客户端 API 执行 DMN 服务
KIE 服务器 Java 客户端 API 提供了通过 REST 或 KIE 服务器的 JMS 接口调用远程 DMN 服务的轻量级方法。这个方法减少了与 KIE 基本交互所需的运行时依赖项数量。从决策定义中分离调用代码,通过使它们能够按照适当的步调进行迭代,从而提高了灵活性。
有关 KIE Server Java 客户端 API 的更多信息,请参阅使用 KIE API 与 Red Hat Decision Manager 交互。
先决条件
-
KIE 服务器是安装和配置的,包括具有
kie-server
角色的用户的已知用户名和凭证。有关安装选项,请参阅 规划 Red Hat Decision Manager 安装。 您已将 DMN 项目构建为 KJAR 工件并将其部署到 KIE 服务器:
mvn clean install
mvn clean install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关项目打包和部署以及可执行模型的更多信息,请参阅 打包和部署 Red Hat Decision Manager 项目。
- 您有包含 DMN 模型的 KIE 容器的 ID。如果存在多个模型,还必须知道相关模型的型号命名空间和型号名称。
流程
在客户端应用程序中,将以下依赖项添加到 Java 项目的相关类路径中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;version
> 是项目中当前使用的 Red Hat Decision Manager 的 Maven 工件版本(例如 7.67.0.Final-redhat-00019)。注意考虑将 Red Hat Business Automation 材料清单(BOM)依赖项添加到项目
pom.xml
文件,而不是为各个依赖项指定红帽决策管理器 <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 的更多信息,请参阅 RHDM 产品与 maven 库版本之间的映射是什么?
使用适当的连接信息实例化
KieServicesClient
实例。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过调用 KIE 服务器 Java 客户端上的方法
getServicesClient()
从连接到相关 KIE 服务器 Java 客户端的 KIE 服务器 Java 客户端获取DMNServicesClient
Client:DMNServicesClient dmnClient = kieServicesClient.getServicesClient(DMNServicesClient.class );
DMNServicesClient dmnClient = kieServicesClient.getServicesClient(DMNServicesClient.class );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dmnClient
现在可在 KIE 服务器上执行决策服务。为所需模型执行决策服务。
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此时,
dmnResult
包含所评估的 DMN 模型中的所有决定结果。您还可以使用
DMNServicesClient
的替代方法,在模型中仅执行特定的 DMN 决策。注意如果 KIE 容器仅包含一个 DMN 模型,您可以省略
$modelNamespace
和$modelName
,因为 KIE Server API 会默认选择它。