`
啸笑天
  • 浏览: 3462031 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Drools入门-----------环境搭建,分析Helloworld

阅读更多

Drools官网:http://www.jboss.org/drools

 

Drools and jBPM consist out of several projects:(Drools软件包提供的几个部分的功能

Drools Guvnor (Business Rules Manager) (规则集管理器

Drools Expert (rule engine)                      (规则引擎)    

jBPM 5 (process/workflow)                       (工作流
Drools Fusion (event processing/temporal reasoning)   (规则集引擎搜索与规划)    

Drools Planner (automated planning)        (决策表)  

-----------------------------------------------------------------------------------------------------------------------

Eclipse3.5安装Drools5.2.0.Final插件

到Drools下载页面(现在是http://www.jboss.org/drools/downloads.html

-下载并解压Drools:drools-distribution-5.2.0.Final.zip  (解压目录随意)

-下载并解压插件:droolsjbpm-tools-distribution-5.2.0.Final.zip(解压目录随意)

- 打开 Eclipse.

- 点 "Help"—"Install new software..."

- 点击 "Add..."  

- 在name中输入"DroolsLocaluUpdateSite"(名字随意起)

- 点击 "Local..." 并且选择"......./binaries/org.drools.updatesite" (此目录在刚刚解压的插件中)

- 点击OK

- 选择所以插件。

-下面就是点击next,finish

 

插件安装完后还需在Eclipse中添加Drools的运行环境:

- 点击"Windows"—"Preferencess"

- 在窗口的树形菜单中选择"Drools"—"Installed Drools Runtimes"

- 在右边的空的Drools运行库列表中,点击"Add"

- 在弹出窗口中name输入DroolsRuntime(随意起个名字),在Path选择"......./drools-distribution-5.2.0.Final\drools-distribution-5.2.0.Final\binaries" (此目录在刚刚解压的Drools中),

- 点击"OK"

- 点击"OK"

-----------------------------------------------------------------------------------------------------------------------

HelloWorld例子

 

- "New"—"Project"—"Drools Project"—输入项目名—"Next"

- 这里显示可以选择要生成的样例文件的类型(3种类型的6种样例文件:规则引擎样例的规则文件和java测试类;决策表开发的决策表文件和java测试类;工作流的流程文件和java测试类)。勾选规则引擎样例的规则文件和java测试类,点击"Next"

 

- 进入到Drools运行时库的选择界面。环境搭建中已经设置了默认的运行时库,这里加载。然后选择编译代码所使用的规则引擎版本,这里选择"Drools 5.1 or above",点击"Finish"

Sample.drl :规则引擎的样例文件,该文件根据Drools规则语言语法编写

 

package com.sample
 
import com.sample.DroolsTest.Message;
 
rule "Hello World"
    when
       //LHS块
       //在working Memory中,如果存在一个Message对象满足他的status属性等于Message.HELLO条件,
       //就把满足条件的Message实例用变量m表示,他的message属性用myMessage表示,以便在RHS中使用。
        m : Message( status == Message.HELLO, myMessage : message )
    then
       //RHS块
       //在LHS中满足条件就运行RHS块。用到了LHS中的变量m,myMessage
        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );//表示把此Message实例在 working memory中更新.这便会触发名称为"GoodBye"的rule, 
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( myMessage );
end

 

DroolsTest.java:java测试类,用来读取Sample.drl 并运行,该文件使用Drools规则引擎的API进行编写

 

package com.sample;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;

/**
 * This is a sample class to launch a rule.
 */
public class DroolsTest {

    public static final void main(String[] args) {
        try {
            // load up the knowledge base
            KnowledgeBase kbase = readKnowledgeBase();
            StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();//创建会话
            KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
            // go !
            Message message = new Message();
            message.setMessage("Hello World");
            message.setStatus(Message.HELLO);
            ksession.insert(message);//插入
            ksession.fireAllRules();//执行规则
            logger.close();//关闭
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private static KnowledgeBase readKnowledgeBase() throws Exception {
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();//创建规则构建器
        kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), ResourceType.DRL);//加载规则文件,并增加到构建器
        KnowledgeBuilderErrors errors = kbuilder.getErrors();
        if (errors.size() > 0) {//编译规则过程中发现规则是否有错误
            for (KnowledgeBuilderError error: errors) {System.out.println("规则中存在错误,错误消息如下:");
                System.err.println(error);
            }
            throw new IllegalArgumentException("Could not parse knowledge.");
        }
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();//创建规则构建库
        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());//构建器加载的资源文件包放入构建库
        return kbase;
    }

    public static class Message {

        public static final int HELLO = 0;
        public static final int GOODBYE = 1;

        private String message;

        private int status;

        public String getMessage() {
            return this.message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

        public int getStatus() {
            return this.status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

    }

}

 

































 

5
0
分享到:
评论
3 楼 菜鸟学生会 2018-01-17  
Drools规则工作流引擎开发教程
网盘地址:http://pan.baidu.com/s/1boavEAN 密码:q4e0
备用地址(腾讯微云):http://url.cn/5NZUh5b 密码:rhO85Y
2 楼 你有罪 2013-04-17  
点击 "Local..." 并且选择"......./binaries/org.drools.updatesite" (此目录在刚刚解压的插件中)选个目录就可以安装了么?不用选择里面的jar包?
1 楼 bewithme 2012-03-13  
顶一个,分析得不错。

相关推荐

    Drools入门-环境搭建,分析及示例.docx

    创建 HelloWorld 项目是学习 Drools 的第一步。在Eclipse中新建一个"Drools Project",选择规则引擎样例的规则文件和Java测试类。样例文件(如Sample.drl)是用Drools规则语言编写的,它包含规则定义(如"Hello ...

    kie-Drools-kie-server7.10.0+tomcat8

    dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...

    kie-drools-wb-7.5.0.Final-tomcat8整合kie-server7.5服务

    drools的workbench平台与kie-server的整个打包,通过tomcat8运行,搞了两天终于搞好了,drools-7.7.0目前界面显示还有问题,因此通过drools-7.5.0版本来运行,服务启动后可以通过代码的方式发送命令来执行规则引擎

    kie-Drools-workbench7.10.0+kie-server7.10.0+tomcat8 下载运行

    dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...

    drools-wb-7.10 tomcat 安装包

    标题中的"drools-wb-7.10 tomcat 安装包"指的是Drools Workbench的一个版本,这是Red Hat公司开发的一款基于Java的工作台,用于规则引擎Drools和决策服务KieServer的管理和开发。Drools是一款强大的业务规则管理系统...

    drools-distribution-7.9.0.Final&spring;-drools-demo

    "drools-distribution-7.9.0.Final.zip" 文件包含了 Drools 框架的核心库,包括编译规则的工具、运行时环境和其他相关组件。解压后,开发者可以找到各种示例和文档,以便学习和理解 Drools 的工作原理。 "spring-...

    drools 5.0完整组件打包压缩文档 drools-5.0-bin.zip

    7. **drools-decisiontables-5.0.1.jar**: 支持决策表(Decision Table)的导入和执行,这是一种更直观的规则表示方式,适合业务分析师使用。 8. **drools-templates-5.0.1.jar**: 提供了模板支持,允许开发人员...

    drools-core-4.0.4.jar

    drools-core-4.0.4.jar drools-core-4.0.4.jar

    kie-drools-wb

    在实际使用中,kie-drools-wb的运行需要一定的环境配置,包括Java运行环境(JRE)和可能的服务器平台,如Tomcat或WildFly。开发者会将这些jar文件添加到应用的类路径中,以便于Drools Workbench能够正常启动并提供...

    jboss 规则引擎 drools库 drools-compiler-5.1.1.jar

    jboss 规则引擎 drools库。 api,core,compiler,jsr94 drools-compiler-5.1.1.jar

    drools-distribution-7.7.0.Final

    源码:\drools-distribution-7.7.0.Final\sources\drools-core-7.7.0.Final-sources.jar、 jar包:\drools-distribution-7.7.0.Final\binaries\drools-core-7.7.0.Final.jar、 API:\drools-distribution-7.7.0....

    drools-persistence-jpa-5.2.0.Final.jar

    drools-persistence-jpa-5.2.0.Final.jar drools

    drools-templates-5.4.0.Final.jar

    drools-templates-5.4.0.Final.jar

    drools-all-jdk1.4-2.1.jar

    drools-all-jdk1.4-2.1.jar

    kie-drools-wb-6.5可运行tomcat版

    总的来说,“kie-drools-wb-6.5可运行tomcat版”为开发者提供了一个高效且便捷的Drools开发环境,结合Tomcat的强大部署能力,使得业务规则的管理变得更加灵活和高效。通过深入理解Drools的工作原理和Drools ...

    drools-distribution-6.3.0

    在"drools-distribution-6.3.0.Beta2"这个压缩包中,包含了丰富的资源,帮助用户学习和理解Drools的用法,特别是对于初学者来说,这是一个宝贵的资料库。 Drools 6.3.0 版本是一个重要的里程碑,它在前一版本的基础...

    drools-apollo-master.zip

    drools-apollo-master.zip drools-apollo-master.zipdrools-apollo-master.zip drools-apollo-master.zipdrools-apollo-master.zip drools-apollo-master.zipdrools-apollo-master.zip drools-apollo-master....

    drools-core-5.2.0.Final-sources.jar

    drools-core-5.2.0.Final-sources.jar

Global site tag (gtag.js) - Google Analytics