Drools WorkBench的简介与使用
目錄
WorkBench簡介
配置 Tomcat
啟動服務器
WorkBench使用
創建空間、項目
創建數據對象和drl文件
設置KieBase+KieSession
代碼使用
WorkBench簡介
WorkBench是KIE組件中的元素,也稱為KIE-WB,是Drools-WB與JBPM-WB的結合體。它是一個可視化的規則編輯器。WorkBench其實就是一個war包。
WorkBench經過幾次版本迭代,已經不提供tomcat啟動的war包,綜合考慮,本課程仍然采用 tomcat版本作為演示。
環境:
apache-tomcat-9.0.29
kie-drools-wb-7.6.0.Final-tomcat8 下載地址:Drools - Download
說明:
準備jar包:需要放到tomcat lib中,否則啟動失敗
具體安裝步驟:
配置 Tomcat
1.修改tomcat-user.xml,添加用戶
<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"version="1.0"><!--定義admin角色--><role rolename="admin"/><!--定義一個用戶,用戶名為kie,密碼為kie,對應的角色為admin角色--><user username="kie-web" password="kie-web123" roles="admin"/><user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/> </tomcat-users>此賬號密碼用于登錄WorkBench管理控制臺
2.修改server.xml
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /><Valve className="org.kie.integration.tomcat.JACCValve"/></Host>host節點下添加<Valve className="org.kie.integration.tomcat.JACCValve"/>
3.復制jar到tomcat根目錄的lib下面:
kie-tomcat-integration-7.10.0.Final.jar javax.security.jacc-api-1.5.jar slf4j-api-1.7.25.jar4.復制 kie-drools-wb-7.6.0.Final-tomcat8.war 到tomcat ?webapp下面并修改成kie-web.war
啟動服務器
啟動tomcat
訪問http://localhost:8080/kie-web,可以看到WorkBench的登錄頁面。使用前面創建的kie-web/kie-web123登錄
WorkBench使用
創建空間、項目
首頁中點擊 project,創建空間
?
我們創建一個 mashibing 的工作空間。點擊 Save,保存。
點擊工作空間當中的 mashibing,進入空間
?
點擊Add Project添加項目
成功后,我們可以看見下圖
?
左上角的導航條,可以在空間和project之間切換
創建數據對象和drl文件
切換到pro1項目內,點擊 Create New Assert
?
選中數據對象:?
輸入Order,點擊確定,成功后跳轉如下頁面?
Order相當于我們代碼中的實體類,在左側 Project Explorer視圖中,可以看見項目結構
接下來添加字段,點擊添加字段按鈕:?
ID 位置,輸入java bean的字段,標簽是備注信息,類型選擇對應的字段類型,保存,點擊創建,關閉彈窗,點擊創建并繼續,可以繼續創建。?
點擊右上角的保存,至此,一個數據對象我們就創建完成,可以在源代碼中查看代碼內容。
接下來我們創建一個drl文件,創建過程跟創建bean類似,drl文件內容如下
package com.mashibing.pro1;rule "rule_1"when$order:Order(age > 10)thenSystem.out.print("rule run..."); end設置KieBase+KieSession
項目首頁點擊Settings
選擇知識庫跟會話?
彈出窗口,輸入Kiebase名稱即可,我們以kb1為例?
操作完成后,不要忘記保存,此時,我們可在Project Explorer視圖中,resource/METAINF/kmodule.xml中看見如下信息?
<kmodule xmlns="http://www.drools.org/xsd/kmodule" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><kbase name="kb1" default="false" eventProcessingMode="stream" equalsBehavior="identity" packages="com.mashibing.pro1"><ksession name="ks1" type="stateful" default="true" clockType="realtime"/></kbase> </kmodule>導航回到項目首頁,進行編譯發布
發布成功后,我們可以在maven倉庫中看到對應的jar
也可以訪問:http://localhost:8080/kie-web/maven2/com/mashibing/pro1/1.0.0/pro1-1.0.0.jar 驗證是否發布成功
代碼使用
@Testpublic void test() throws Exception{//通過此URL可以訪問到maven倉庫中的jar包//URL地址構成:http://ip地址:Tomcat端口號/WorkBench工程名/maven2/坐標/版本號/xxx.jarString url = "http://localhost:8080/kie-web/maven2/com/mashibing/pro1/1.0.0/pro1-1.0.0.jar";KieServices kieServices = KieServices.Factory.get();UrlResource resource = (UrlResource) kieServices.getResources().newUrlResource(url);//認證resource.setUsername("kie-web");resource.setPassword("kie-web123");resource.setBasicAuthentication("enabled");KieRepository repository = kieServices.getRepository();//通過輸入流讀取maven倉庫中的jar包數據,包裝成KieModule模塊添加到倉庫中KieModule kieModule = repository.addKieModule(kieServices.getResources().newInputStreamResource(resource.getInputStream()));KieContainer kieContainer = kieServices.newKieContainer(kieModule.getReleaseId());KieSession session = kieContainer.newKieSession();Order order = new Order();order.setName("張三");order.setAge(30);session.insert(order);session.fireAllRules();session.dispose();}我們用URL流的方式,獲取jar資源,并構造kiesession對象,即可動態訪問workbench中的規則
總結
以上是生活随笔為你收集整理的Drools WorkBench的简介与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android实战-忘记密码案例
- 下一篇: matlab 折线图 配色