drools6.1的问题,kieansys workbenchh 安装好了,但是不知道怎么使用里面的guvnor?

当前访客身份:游客 [
当前位置:
Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法对所编写的规则求值。Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则,从而便于学习和理解。并且,还可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人。
Drools 还具有其他优点:
非常活跃的社区支持
快速的执行速度
在 Java 开发人员中流行
与 Java Rule Engine API(JSR 94)兼容
Drools最新更新资讯,共20条&&(,)
0评/1051阅
0评/1805阅
1评/1536阅
0评/2252阅
授权协议: ASL/BSD/MIT
开发语言:
操作系统:
收录时间: 日
背着耗子去流浪 发表于3周前
,最后回答(3周前):
lzf123 发表于1个月前
Dnvce 发表于2个月前
Dnvce 发表于2个月前
,最后回答(2个月前):
Dnvce 发表于2个月前
,最后回答(2个月前):
weiming1974 发表于6个月前
尼古拉希 发表于9个月前
,最后回答(9个月前):
sxgkwei 发表于3年前
,最后回答(9个月前):
丛林迷雾 发表于1年前
,最后回答(9个月前):
路灯下的大怪兽 发表于1年前
sohu001 发表于2年前
,最后回答(1年前):
鉴客 发表于5年前
,最后回答(1年前):
jiangma 发表于1年前
,最后回答(1年前):
lulu1987 发表于3年前
,最后回答(2年前):
阿门 发表于2年前
lnjzliulei 发表于2年前
唐代豆腐超贵 发表于2年前
,最后回答(2年前):
lulu1987 发表于2年前
java初雪者 发表于3年前
liangxiao 发表于3年前
,最后回答(3年前):
使用 Drools 中的任何问题
没人 过问了..
共有 28 个类似软件
JBoss BRMS 是红帽公司的企业业务规则管理系统(BRMS)产品线,帮助构建智能化、集...
Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核...
Apache Camel 是一个非常强大的基于规则的路由以及媒介引擎,该引擎提供了一个基于...
Drools.NET 是 .NET 版的 Drools —— 一款基于Charles Forgy的RETE算法的开源的业...
ILOG JRules 本身是一个灵活的BRMS(Business Rule Management System),涵盖了业务...
NxBRE是.NET平台下的一款开源轻量级的业务规则引擎(aka Rule Based Engine),它由正...
Esper 是一个复杂事件处理组件(CEP - Complex Event Processing),它有 Java 版本...
OpenRules基于java完全开放源代码的商业规则管理框架。它有效的利用了MS Excel, E...
私有云平台厂商Intalio,发布管理的业务 流程集成平台Intalio BPM的6.0。新版本包括...
Jess 是一个用Java编写的快速的规则引擎
Drools.NET 是 .NET 版的 Drools —— 一款基于Charles Forgy的RETE算法的开源的业...
Drools Flow为Drools平台提供了工作流或者(业务)流程能力。一个业务流程或者工作...
Drools Expert 是 Drools 平台上的一个规则引擎,主要的功能包括有: Full Asymmet...
共有 152 人关注 Drools2558人阅读
为了系统能够动态响应业务逻辑的变化,需要引入规则引擎,之前用过Drools,找回它,发现Drools一直都在进化,版本6和5也有挺大差别了,文档和code sample都非常详细,感觉做的非常不错。
Note:Code link:/droolsjbpm/drools 里面有很多sample api,还有很多junit test可以了解怎么使用Drools
Drools6给我的最大不同就是把rules打包成jar,使用端通过kie-ci来动态从maven repo中获取指定rules jar版本,虽然和maven有紧耦合,在网上也看到了很多人说不喜欢,项目没有maven之类的,不过我觉得简化以及清晰了rules的使用和动态升级:系统建立2个项目:一个Drools项目来实现规则,验收规则,生成jar包,另外一个就是真正要用规则的项目,直接通过引入不同版本的jar包实习规则动态升级。
下面介绍一下我基于这种想法做的sample实践:
Note:Drools有整合eclipse的IDE,不过我还没有用到它的复杂功能,所以我只是使用了eclipse+ drools plugin
1. 安装eclipse jee version
2. 从eclipse help-&install new software, 安装drools插件 (我这里用的是6.1.0 beta3&http://download.jboss.org/drools/release/6.1.0.Beta3/org.drools.updatesite/)
3. 安装完插件之后重启,从eclipse new 一个drools project
输入project name
这个时候可以通过点击configure workspace settings,来创建drools runtime,选好runtime之后,groupid/artifact/id/version随意填写
选择下载的drools文件夹路径作为drools runtime路径
直接点击finish,这样一个包含sample的hello world的drools工程就创建好了。
4. 可以看出,drools project就是一个maven project,在src/main/java里面有个DroolsTest java文件
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession(&ksession-rules&);
Message message = new Message();
message.setMessage(&Hello World&);
message.setStatus(Message.HELLO);
kSession.insert(message);
kSession.fireAllRules();这里可以看出 kie框架先初始化一个kieservice对象,然后从classpath中读取kmodule,创建KieContainder, 从而获取KieSession来对Fact(message对象)执行规则(fireAllRules)
5. 在src/main/resources下面有个rules folder,里面有具体的rules.drl(具体规则定义文件),同时有个meta-inf folder,里面有个maven folder和一个kmodule.xml的配置文件,maven folder里面有个pom.properties,这个properties是因为新版本的drools依靠maven来区分不同的kmodule从而实习方便的动态rules upgrade,打开pom.properties,可以看到groupid/artifact/id/version都没有值,把它们改成如下:
groupId=${project.groupId}
artifactId=${project.artifactId}
version=${project.version}
这样可以直接使用pom中的相应信息。
6. kmodule.xml就是kieservice从classpath需要读取的kmodule配置文件,这个配置文件决定了kession的类型,名称,rules文件所在文件夹(kbase packages)
&?xml version=&1.0& encoding=&UTF-8&?&
&kmodule xmlns=&http://jboss.org/kie/6.0.0/kmodule&&
&kbase name=&rules& packages=&rules&&
&ksession name=&ksession-rules&/&
&/kmodule&
kession有stateless和stateful的区别,从drools官方说法除了处理大数据,stateless和stateful没有大区别,从code看stateless的实现就是使用了stateful。。。使用哪种由ksession的type属性决定,默认ksession是stateful的,如果想使用stateless的ksession,可以修改kmodule.xml ksession行如下:
&pre name=&code& class=&html&&&ksession name=&ksession-rules& &span style=&font-family: Arial, Helvetica, sans-&&type=&stateless& &/span&&span style=&font-family: Arial, Helvetica, sans-&&/&&/span&
同时代码中也要改成使用statelsskiesession,并且不用fireAllRules,改成调用exeucte方法
kContainer.newStatelessKieSession(&ksession-rules&)
7.修改项目的pom.xml,加入以下信息到pom.xml,同时加入$属性定义到pom文件
&dependencies&
&!-- for drools --&
&dependency&
&groupId&org.drools&/groupId&
&artifactId&drools-core&/artifactId&
&/dependency&
&dependency&
&groupId&org.drools&/groupId&
&artifactId&drools-compiler&/artifactId&
&/dependency&
&dependency&
&groupId&org.drools&/groupId&
&artifactId&knowledge-api&/artifactId&
&/dependency&
&dependency&
&groupId&org.drools&/groupId&
&artifactId&drools-decisiontables&/artifactId&
&/dependency&
&dependency&
&groupId&org.drools&/groupId&
&artifactId&drools-jsr94&/artifactId&
&/dependency&
&!-- fix for SLF4J: Failed to load class &org.slf4j.impl.StaticLoggerBinder&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-simple&/artifactId&
&version&${project.slf4j-simpleVersion}&/version&
&/dependency&
&!-- for drools end --&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&/dependency&
&dependency&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&/dependency&
&/dependencies&
&defaultGoal&install&/defaultGoal&
&groupId&org.kie&/groupId&
&artifactId&kie-maven-plugin&/artifactId&
&version&${project.kiePluginVersion}&/version&
&extensions&true&/extensions&
&/plugins&
这里特别提一下kie-maven-plugin,官方文档说加入这个可以帮助预编译rules防止rules语法错误,虽然我觉得打包之前只要做够测试就不太可能出现这种问题,还是保留它。
今天先到这里,下次写添加测试类,deploy jar,以及在其他项目里面如何使用rules jar
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:38018次
积分:1071
积分:1071
排名:千里之外
原创:67篇
转载:17篇
评论:19条
(4)(4)(4)(4)(4)(4)(1)(4)(5)(4)(5)(4)(4)(2)(4)(2)(18)(4)(1)(2)Drools开发手册_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
Drools开发手册
G​u​v​n​o​r​开​发​,​G​u​v​n​o​r​的​前​身​是​B​R​M​S​(​B​u​s​s​n​i​s​s​ ​R​u​l​e​ ​M​a​n​a​g​e​ ​S​y​s​t​e​m​:​业​务​规​则​管​理​系​统
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢}

我要回帖

更多关于 guvnor 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信