MyEclipse8.5之Drools插件安装小结.docx_第1页
MyEclipse8.5之Drools插件安装小结.docx_第2页
MyEclipse8.5之Drools插件安装小结.docx_第3页
MyEclipse8.5之Drools插件安装小结.docx_第4页
MyEclipse8.5之Drools插件安装小结.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

愿天下有情人终成眷属MyEclipse 8.5 之Drools插件安装小结Drools官方网址:/droolsDrools and jBPMconsist out of several projects:(Drools软件包提供的几个部分的功能)Drools Guvnor (Business Rules Manager)(规则集管理器)Drools Expert (rule engine) (规则引擎) jBPM5 (process/workflow) (工作流)Drools Fusion (event processing/temporal reasoning)(规则集引擎搜索与规划) Drools Planner (automated planning) (决策表) -MyEclipse 8.5安装Drools5.4.0.Final插件到Drools下载页面(/drools/downloads.html)-下载并解压Drools:drools-distribution-5.4.0.Final.zip(解压目录随意)-下载并解压插件:droolsjbpm-tools-distribution-5.4.0.Final.zip(解压目录随意)一安装插件- 打开 MyEclipse 8.5- 点 Helpsoftware and workspace Center- 点击 Software选项卡-点击 Browse Software 后面的add site- 点击 Add from Local Folder 并且选择./binaries/org.drools.updatesite (此目录在刚刚解压的插件中)- 在name中输入DroolsLocaluUpdateSite(名字随意起)-点击OK逐项选中右键 add - 点击Apply N(数字) changes 出现-点击Next-点击Update,直到安装完成。插件安装完后还需在MyEclipse 8.5中添加Drools的运行环境。二添加Drools的运行环境-点击WindowsPreferencess- 在窗口的树形菜单中选择DroolsInstalled Drools Runtimes- 在右边的空的Drools运行库列表中,点击Add- 在弹出窗口中name输入DroolsRuntime(随意起个名字),在Path选择./drools-distribution-5.4.0.Finaldrools-distribution-5.4.0.Finalbinaries(此目录在刚刚解压的Drools中 最好不要有中文),- 点击OK重新启动环境。即可进入下面测试-HelloWorld例子- NewProjectDrools Project输入项目名Next- 这里显示可以选择要生成的样例文件的类型(3种类型的6种样例文件:规则引擎样例的规则文件和java测试类;决策表开发的决策表文件和java测试类;工作流的流程文件和java测试类)。勾选规则引擎样例的规则文件和java测试类,点击Next- 进入到Drools运行时库的选择界面。环境搭建中已经设置了默认的运行时库,这里加载。然后选择编译代码所使用的规则引擎版本,这里选择Drools 5.1 or above,点击FinishSample.drl :规则引擎的样例文件,该文件根据Drools规则语言语法编写Java代码 1. packagecom.sample 2. 3. importcom.sample.DroolsTest.Message; 4. 5. ruleHelloWorld6. when 7. /LHS块 8. /在workingMemory中,如果存在一个Message对象满足他的status属性等于Message.HELLO条件, 9. /就把满足条件的Message实例用变量m表示,他的message属性用myMessage表示,以便在RHS中使用。 10. m:Message(status=Message.HELLO,myMessage:message) 11. then 12. /RHS块 13. /在LHS中满足条件就运行RHS块。用到了LHS中的变量m,myMessage 14. System.out.println(myMessage); 15. m.setMessage(Goodbyecruelworld); 16. m.setStatus(Message.GOODBYE); 17. update(m);/表示把此Message实例在workingmemory中更新.这便会触发名称为GoodBye的rule, 18. end 19. 20. ruleGoodBye21. when 22. Message(status=Message.GOODBYE,myMessage:message) 23. then 24. System.out.println(myMessage); 25. endpackage 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, endrule GoodBye when Message( status = Message.GOODBYE, myMessage : message ) then System.out.println( myMessage );endDroolsTest.java:java测试类,用来读取Sample.drl 并运行,该文件使用Drools规则引擎的API进行编写Java代码 1. packagecom.sample; 2. 3. importorg.drools.KnowledgeBase; 4. importorg.drools.KnowledgeBaseFactory; 5. importorg.drools.builder.KnowledgeBuilder; 6. importorg.drools.builder.KnowledgeBuilderError; 7. importorg.drools.builder.KnowledgeBuilderErrors; 8. importorg.drools.builder.KnowledgeBuilderFactory; 9. importorg.drools.builder.ResourceType; 10. importorg.drools.io.ResourceFactory; 11. importorg.drools.logger.KnowledgeRuntimeLogger; 12. importorg.drools.logger.KnowledgeRuntimeLoggerFactory; 13. importorg.drools.runtime.StatefulKnowledgeSession; 14. 15. /* 16. *Thisisasampleclasstolauncharule. 17. */18. publicclassDroolsTest 19. 20. publicstaticfinalvoidmain(Stringargs) 21. try 22. /loaduptheknowledgebase 23. KnowledgeBasekbase=readKnowledgeBase(); 24. StatefulKnowledgeSessionksession=kbase.newStatefulKnowledgeSession();/创建会话 25. KnowledgeRuntimeLoggerlogger=KnowledgeRuntimeLoggerFactory.newFileLogger(ksession,test); 26. /go! 27. Messagemessage=newMessage(); 28. message.setMessage(HelloWorld); 29. message.setStatus(Message.HELLO); 30. ksession.insert(message);/插入 31. ksession.fireAllRules();/执行规则 32. logger.close();/关闭 33. catch(Throwablet) 34. t.printStackTrace(); 35. 36. 37. 38. privatestaticKnowledgeBasereadKnowledgeBase()throwsException 39. KnowledgeBuilderkbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();/创建规则构建器 40. kbuilder.add(ResourceFactory.newClassPathResource(Sample.drl),ResourceType.DRL);/加载规则文件,并增加到构建器 41. KnowledgeBuilderErrorserrors=kbuilder.getErrors(); 42. if(errors.size()0)/编译规则过程中发现规则是否有错误 43. for(KnowledgeBuilderErrorerror:errors)System.out.println(规则中存在错误,错误消息如下:); 44. System.err.println(error); 45. 46. thrownewIllegalArgumentException(Couldnotparseknowledge.); 47. 48. KnowledgeBasekbase=KnowledgeBaseFactory.newKnowledgeBase();/创建规则构建库 49. kbase.addKnowledgePackages(kbuilder.getKnowledgePackages();/构建器加载的资源文件包放入构建库 50. returnkbase; 51. 52. 53. publicstaticclassMessage 54. 55. publicstaticfinalintHELLO=0; 56. publicstaticfinalintGOODBYE=1; 57. 58. privateStringmessage; 59. 60. privateintstatus; 61. 62. publicStringgetMessage() 63. returnthis.message; 64. 65. 66. publicvoidsetMessage(Stringmessage) 67. this.message=message; 68. 69. 70. publicintgetStatus() 71. returnthis.status; 72. 73. 74. publicvoidsetStatus(intstatus) 75. this.status=status; 76. 77. 78. 79. 80. 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论