KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署

windows 直接在tomcat 下 放war包总是有这样那样的问题,而且很让人束手无策,我都很怀疑官方自己测了没就放出来,刚开始是tomcat,workbench 能打开,但是构建项目报错,后来换了wildfly 部署 workbench 环节没啥问题,轮到kie-sever出毛病,我都无解,看大家都讲,docker 简单方便直接,那就试试了,试完之后都感觉这个挺不错的,模拟 linux环境。

1.docker 安装

docker 从官网下载,https://www.docker.com/ 我下的是win10版本的,window 下也只有10,和win10的一项技术 "Windows-native Hyper-V virtualization"有关。安装包下完之后直接双击安装,一直点确认就好,期间可能会有几次重启,记得保存下代码。

安装完之后先别着急,右键左面右下角的鲸鱼图标点击setting,然后点击Advance,适当调整以下虚拟机的cpu 内存等参数。

2.workbench 的安装

先右键点击左下角windows,选择powershell

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第1张图片
cmd.png

先拉镜像到本地

docker pull jboss/drools-workbench-showcase

然后键入这个命令,这个命令是jboss官方写的,其实都挺简单的,下面这部分照搬官方。

docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest

然后呢你就可以访问drools workbench了

以下是workbench相关的账号密码:

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

如果你想看docker 环境中的相关日志,可以键入以下命令

docker logs -f drools-workbench

workbench的安装基本没啥事了
http://localhost:8080/drools-wb 点击这个登陆workbench

3.kie-server安装

kie-server 的安装和 workbench 的安装差不多,先拉镜像

docker pull jboss/kie-server-showcase

然后启动kie-server 并且和workbench 关联

docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie_wb jboss/kie-server-showcase:latest

kie-server也安装完成 http://localhost:8180/kie-server/services/rest/server/ 查看kie-sever状态
下面再介绍workbench 及 kie-server

4.应用

首先再workbench中创建一个project

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第2张图片
image.png

项目创建完成之后,需要创建一些文件夹,文件,下边是类型

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第3张图片
image.png

先创建软件包,我创建了两个,一个是存放数据对象的bean,一个是存放规则rule。


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第4张图片
image.png

之后,再创建 数据对象 profession

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第5张图片
image.png

数据对象 person

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第6张图片
image.png

完成之后开始创建规则“rule_001”,规则需要import包,同一个包下面不用,我是放在不同包下面


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第7张图片
image.png

导入完成,编辑好规则


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第8张图片
rule.png

点击右上角的校验,校验成功就可以了,然后再在rule包下创建场景测试。
依旧是先导入数据包,然后编辑测试场景


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第9张图片
scene.jpg

保存,运行测试场景,没问题就转到项目设置修改以下项

KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第10张图片
kbase.png

kiesession 很重要,kie session 的 name要记住,项目中要用到


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第11张图片
kiesession.png

完成之后依次点击 build deploy.
在主页点击server,启动server服务


KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署_第12张图片
image.png

创建一个空白maven项目,需要导入kie-server相关包,及drools包
pom.xml如下



    4.0.0

    XXX//项目名称id,自己定义
    kieserver
    1.0-SNAPSHOT


    
        junit
        junit
        3.8.1
        test
    

    
        org.drools
        drools-core
        7.12.0.Final
    
    
        org.drools
        drools-compiler
        7.12.0.Final
    
    
        org.kie.server
        kie-server
        7.12.0.Final
    
    
        org.slf4j
        slf4j-api
        1.7.22
    

    
        com.alibaba
        fastjson
        1.2.51
    


在Java项目中添加workbench中的数据对象,可以直接拷贝过来,注意数据对象的包名要和 workbench中的名称一模一样

dataObject.png

进这个网站查看容器id http://localhost:8180/kie-server/services/rest/server/containers

创建一个启动函数如下

public class ContainerTest  {
    public static final String SERVER_URL = "http://localhost:8180/kie-server/services/rest/server";
        public static final String PASSWORD = "密码不给看";
        public static final String USERNAME = "密码不给看";
        public static final String KIE_CONTAINER_ID = "demo_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);

            // 规则输入条件
            Person person = new Person();
            person.setAge(30);
            person.setSexy("boy");

            Profession profession =new Profession();
            profession.setTitle("soft");
            person.setProfession(profession);

            // 命令定义,包含插入数据,执行规则
            KieCommands kieCommands = KieServices.Factory.get().getCommands();
            List> commands = new LinkedList<>();
            commands.add(kieCommands.newInsert(person, "person"));
            commands.add(kieCommands.newFireAllRules());
            ServiceResponse results = ruleServicesClient.executeCommandsWithResults(KIE_CONTAINER_ID,
                    kieCommands.newBatchExecution(commands, "k2"));

            // 返回值读取
            Person value = (Person) results.getResult().getValue("person");
            System.out.println(JSONObject.toJSON(value).toString());
        }
}

输出结果

{"profession":{"grade":18,"title":"soft"},"sexy":"boy","name":"tom","age":123}

以上完成drools workbench 的搭建以及kie-server的搭建

5.注意事项

版本发布之后,windows 10 版本想更新规则必须升级版本号,因为生成过的版本删不掉,又不能覆盖(覆盖有问题),所以只能提升版本,但是linux可以在相应maven库中删除包,然后更新

你可能感兴趣的:(KIE(四):Drools workbench 及 kie-server 在windows 10环境下用 docker 部署)