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

windows 直接在tomcat 下 放war包總是有這樣那樣的問(wèn)題落剪,而且很讓人束手無(wú)策计寇,我都很懷疑官方自己測(cè)了沒(méi)就放出來(lái)常拓,剛開(kāi)始是tomcat未玻,workbench 能打開(kāi),但是構(gòu)建項(xiàng)目報(bào)錯(cuò)饭寺,后來(lái)?yè)Q了wildfly 部署 workbench 環(huán)節(jié)沒(méi)啥問(wèn)題阻课,輪到kie-sever出毛病,我都無(wú)解艰匙,看大家都講限煞,docker 簡(jiǎn)單方便直接,那就試試了员凝,試完之后都感覺(jué)這個(gè)挺不錯(cuò)的署驻,模擬 linux環(huán)境。

1.docker 安裝

docker 從官網(wǎng)下載,https://www.docker.com/ 我下的是win10版本的,window 下也只有10旺上,和win10的一項(xiàng)技術(shù) "Windows-native Hyper-V virtualization"有關(guān)瓶蚂。安裝包下完之后直接雙擊安裝,一直點(diǎn)確認(rèn)就好宣吱,期間可能會(huì)有幾次重啟窃这,記得保存下代碼。

安裝完之后先別著急征候,右鍵左面右下角的鯨魚(yú)圖標(biāo)點(diǎn)擊setting钦听,然后點(diǎn)擊Advance,適當(dāng)調(diào)整以下虛擬機(jī)的cpu 內(nèi)存等參數(shù)倍奢。

2.workbench 的安裝

先右鍵點(diǎn)擊左下角windows,選擇powershell

cmd.png

先拉鏡像到本地

docker pull jboss/drools-workbench-showcase

然后鍵入這個(gè)命令朴上,這個(gè)命令是jboss官方寫(xiě)的,其實(shí)都挺簡(jiǎn)單的,下面這部分照搬官方卒煞。

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

然后呢你就可以訪問(wèn)drools workbench了

以下是workbench相關(guān)的賬號(hào)密碼:

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 環(huán)境中的相關(guān)日志痪宰,可以鍵入以下命令

docker logs -f drools-workbench

workbench的安裝基本沒(méi)啥事了
http://localhost:8080/drools-wb 點(diǎn)擊這個(gè)登陸workbench

3.kie-server安裝

kie-server 的安裝和 workbench 的安裝差不多,先拉鏡像

docker pull jboss/kie-server-showcase

然后啟動(dòng)kie-server 并且和workbench 關(guān)聯(lián)

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狀態(tài)
下面再介紹workbench 及 kie-server

4.應(yīng)用

首先再workbench中創(chuàng)建一個(gè)project

image.png

項(xiàng)目創(chuàng)建完成之后,需要?jiǎng)?chuàng)建一些文件夾畔裕,文件衣撬,下邊是類(lèi)型

image.png

先創(chuàng)建軟件包,我創(chuàng)建了兩個(gè),一個(gè)是存放數(shù)據(jù)對(duì)象的bean扮饶,一個(gè)是存放規(guī)則rule具练。


image.png

之后,再創(chuàng)建 數(shù)據(jù)對(duì)象 profession

image.png

數(shù)據(jù)對(duì)象 person

image.png

完成之后開(kāi)始創(chuàng)建規(guī)則“rule_001”甜无,規(guī)則需要import包扛点,同一個(gè)包下面不用,我是放在不同包下面


image.png

導(dǎo)入完成岂丘,編輯好規(guī)則


rule.png

點(diǎn)擊右上角的校驗(yàn)陵究,校驗(yàn)成功就可以了,然后再在rule包下創(chuàng)建場(chǎng)景測(cè)試奥帘。
依舊是先導(dǎo)入數(shù)據(jù)包铜邮,然后編輯測(cè)試場(chǎng)景


scene.jpg

保存,運(yùn)行測(cè)試場(chǎng)景寨蹋,沒(méi)問(wèn)題就轉(zhuǎn)到項(xiàng)目設(shè)置修改以下項(xiàng)

kbase.png

kiesession 很重要松蒜,kie session 的 name要記住,項(xiàng)目中要用到


kiesession.png

完成之后依次點(diǎn)擊 build deploy.
在主頁(yè)點(diǎn)擊server已旧,啟動(dòng)server服務(wù)


image.png

創(chuàng)建一個(gè)空白maven項(xiàng)目秸苗,需要導(dǎo)入kie-server相關(guān)包,及drools包
pom.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>XXX</groupId>//項(xiàng)目名稱(chēng)id评姨,自己定義
    <artifactId>kieserver</artifactId>
    <version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>7.12.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>7.12.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.kie.server</groupId>
        <artifactId>kie-server</artifactId>
        <version>7.12.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.22</version>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.51</version>
    </dependency>
</dependencies>
</project>

在Java項(xiàng)目中添加workbench中的數(shù)據(jù)對(duì)象难述,可以直接拷貝過(guò)來(lái)萤晴,注意數(shù)據(jù)對(duì)象的包名要和 workbench中的名稱(chēng)一模一樣

dataObject.png

進(jìn)這個(gè)網(wǎng)站查看容器id http://localhost:8180/kie-server/services/rest/server/containers

創(chuàng)建一個(gè)啟動(dòng)函數(shù)如下

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 配置信息設(shè)置
            KieServicesConfiguration kieServicesConfiguration =
                    KieServicesFactory.newRestConfiguration(SERVER_URL, USERNAME, PASSWORD, 10000L);
            kieServicesConfiguration.setMarshallingFormat(MarshallingFormat.JSON);

            // 創(chuàng)建規(guī)則服務(wù)客戶端
            KieServicesClient kieServicesClient = KieServicesFactory.newKieServicesClient(kieServicesConfiguration);
            RuleServicesClient ruleServicesClient = kieServicesClient.getServicesClient(RuleServicesClient.class);

            // 規(guī)則輸入條件
            Person person = new Person();
            person.setAge(30);
            person.setSexy("boy");

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

            // 命令定義吐句,包含插入數(shù)據(jù)胁后,執(zhí)行規(guī)則
            KieCommands kieCommands = KieServices.Factory.get().getCommands();
            List<Command<?>> commands = new LinkedList<>();
            commands.add(kieCommands.newInsert(person, "person"));
            commands.add(kieCommands.newFireAllRules());
            ServiceResponse<ExecutionResults> results = ruleServicesClient.executeCommandsWithResults(KIE_CONTAINER_ID,
                    kieCommands.newBatchExecution(commands, "k2"));

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

輸出結(jié)果

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

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

5.注意事項(xiàng)

版本發(fā)布之后,windows 10 版本想更新規(guī)則必須升級(jí)版本號(hào)嗦枢,因?yàn)樯蛇^(guò)的版本刪不掉攀芯,又不能覆蓋(覆蓋有問(wèn)題),所以只能提升版本文虏,但是linux可以在相應(yīng)maven庫(kù)中刪除包侣诺,然后更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市氧秘,隨后出現(xiàn)的幾起案子年鸳,更是在濱河造成了極大的恐慌,老刑警劉巖丸相,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搔确,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡灭忠,警方通過(guò)查閱死者的電腦和手機(jī)膳算,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)弛作,“玉大人涕蜂,你說(shuō)我怎么就攤上這事∮沉眨” “怎么了机隙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)萨西。 經(jīng)常有香客問(wèn)我黍瞧,道長(zhǎng),這世上最難降的妖魔是什么原杂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任印颤,我火速辦了婚禮,結(jié)果婚禮上穿肄,老公的妹妹穿的比我還像新娘年局。我一直安慰自己,他們只是感情好咸产,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布矢否。 她就那樣靜靜地躺著,像睡著了一般脑溢。 火紅的嫁衣襯著肌膚如雪僵朗。 梳的紋絲不亂的頭發(fā)上赖欣,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音验庙,去河邊找鬼顶吮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛粪薛,可吹牛的內(nèi)容都是我干的悴了。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼违寿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼湃交!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藤巢,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搞莺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后掂咒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體才沧,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年俏扩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糜工。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡录淡,死狀恐怖捌木,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫉戚,我是刑警寧澤刨裆,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站彬檀,受9級(jí)特大地震影響帆啃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窍帝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一努潘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坤学,春花似錦疯坤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至飞苇,卻和暖如春菌瘫,著一層夾襖步出監(jiān)牢的瞬間蜗顽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工雨让, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雇盖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓宫患,卻偏偏與公主長(zhǎng)得像刊懈,于是被迫代替她去往敵國(guó)和親这弧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娃闲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本文側(cè)重對(duì)官方文檔的解讀及擴(kuò)展。同時(shí)結(jié)合自身的實(shí)踐分享一些自己的見(jiàn)解匾浪。請(qǐng)結(jié)合官方文檔閱讀https://docs....
    RyanLee_閱讀 13,568評(píng)論 4 15
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理皇帮,服務(wù)發(fā)現(xiàn),斷路器蛋辈,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 星斗橫流属拾,光陰飛馳。藥瓶冷溶、壁宿緊閉到期渐白。太歲召見(jiàn)。 太歲升太極殿逞频,眾文武山呼天尊吉祥禮畢纯衍。 太歲:如今壁宿、藥瓶二...
    春雪伊人閱讀 145評(píng)論 2 3
  • 01 好風(fēng)憑借力苗胀,送我上青天襟诸,這是點(diǎn)線面思維的最好解釋?zhuān)驹谝粋€(gè)快速崛起的行業(yè)中,行業(yè)的快速崛起也帶動(dòng)著個(gè)人的崛起...
    寒冬之城閱讀 531評(píng)論 2 0
  • 今天發(fā)現(xiàn)自己是個(gè)固執(zhí)的人…… 爹媽一句話沒(méi)有提讓我找男朋友的事基协「枨祝可能因?yàn)樗麄冎牢覍?duì)這件事的態(tài)度。但是奶奶卻孜孜不...
    GWong閱讀 562評(píng)論 0 0