安装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部署