安装Workbench以及kie-server
https://blog.csdn.net/chinrui/article/details/79018351
Workbench安装说明
https://hub.docker.com/r/jboss/drools-workbench-showcase/
kie-server安装说明
https://hub.docker.com/r/jboss/kie-server-showcase/
1.下载Workbench以及kie-server镜像
docker pull jboss/drools-workbench-showcase
showcase继承于jboss/drools-workbench:latest,增加了默认的用户和角色,还增加了一些例子
docker pull jboss/kie-server-showcase:latest
2.启动
启动Workbench
docker run -p 8080:8080 -p 8001:8001 -d --name drools-wb jboss/drools-workbench-showcase:latest
启动kie-server
docker run -p 8180:8080 -d --name kie-server --link drools-wb:kie_wb jboss/kie-server-showcase:latest
docker run -p 8080:8080 -p 6001:8001 -d --name drools-wb jboss/drools-workbench-showcase:latest
3.登录及使用Workbench
http://localhost:8080/drools-wb
使用用户名及密码登录
USER PASSWORD ROLE ********************************************* admin admin admin,analyst,kiemgmt krisv krisv admin,analyst john john analyst,Accounting,PM sales-rep sales-rep analyst,sales katy katy analyst,HR jack jack analyst,IT
https://github.com/wildfly/quickstart
4.使用Workbench
4.1新建项目
4.2 Add Asset创建包、创建数据对象模型、规则文件、测试文件、发布规则
a.创建包
b.创建数据对象
Address模型
ApplyInfo模型
c.创建规则
规则名rule_001
可以看到同报名的数据对象自动导入了
通过编辑器配置规则
d.创建测试场景testRule_001,增加fact
运行测试场景
e.发布规则
首先设置 KieBase 与 KieSession,也就是配置 kmodule.xml 文件
5.kie-server
启动之后访问
http://localhost:8180/kie-server/services/rest/server/
kieserver/kieserver1!
通过Workbench查看服务器可以看到已经关联了kie-server
6.调用kie-server
依赖
<dependency>
<groupId>org.kie.server</groupId>
<artifactId>kie-server-client</artifactId>
<version>7.7.0.Final</version>
</dependency>
调用kie-server代码
public class Main {
public static final String SERVER_URL = "http://localhost:6160/kie-server/services/rest/server";
public static final String USERNAME = "kieserver";
public static final String PASSWORD = "kieserver1!";
public static final String KIE_CONTAINER_ID = "com.gao:hellodrools:1.0.0";
public static void main(String[] args) {
// KisService 配置信息设置
KieServicesConfiguration kieServicesConfiguration =
KieServicesFactory.newRestConfiguration(SERVER_URL, USERNAME, PASSWORD, 10000L);
kieServicesConfiguration.setMarshallingFormat(MarshallingFormat.JSON);
// 创建规则服务客户端
KieServicesClient kieServicesClient = KieServicesFactory.newKieServicesClient(kieServicesConfiguration);
RuleServicesClient ruleServicesClient = kieServicesClient.getServicesClient(RuleServicesClient.class);
// 规则输入条件
ApplyInfo applyInfo = new ApplyInfo();
applyInfo.setAge(19);
Address familyAddress = new Address();
familyAddress.setProvince("aa");
applyInfo.setFamilyAddress(familyAddress);
// 命令定义,包含插入数据,执行规则
KieCommands kieCommands = KieServices.Factory.get().getCommands();
List<Command<?>> commands = new LinkedList<>();
commands.add(kieCommands.newInsert(applyInfo, "applyInfo"));
commands.add(kieCommands.newFireAllRules());
ServiceResponse<ExecutionResults> results = ruleServicesClient.executeCommandsWithResults(KIE_CONTAINER_ID,
kieCommands.newBatchExecution(commands, "ksessionId"));
// 返回值读取
ApplyInfo value = (ApplyInfo) results.getResult().getValue("applyInfo");
System.out.println(value);
}
}
java部署