《drools入门helloworld》由会员分享,可在线阅读,更多相关《drools入门helloworld(4页珍藏版)》请在金锄头文库上搜索。
1、Drools环境搭建与Dome HelloWorld最近研究drools,第一个入门程序分析给大家:一、下载开发工具: 因为Drools5.1提供的是eclipse3.5版之后的IDE开发工具,所以要求使用3.4版的eclipse.下载地址:http:/eclipse.org。然后再到http:/jboss.org/drools/downloads.html 下载Drools5 的 Eclipse 插件版 IDE (Drools Eclipse 3.5 Workbench,其中的3.5即为要求的eclipse版本)及 Drools5的开发工具包(Drools Binaries).下载完成后将二
2、者都解压到一个非中文目录下。例如本例解压到E:/eclipse下。然后在解压完的drools-5.1.1- eclipse-all,并将其它文件夹(features和plugins)直接复制到eclipse文件夹下。二、安装IDE: 打开 Eclipse 所在目录下的 links 目录(如果该目录不存在可以手工在其目录下创建一个 links目录),在 links目录下创建一个文本文件,并改名为 drools5-ide.link,用记事本打开该文件,按照下面的版本输入 Drools5 Eclipse Plugin 文件所在目录:path=E:/eclipse/drools-5.1.1-eclip
3、se-all。重新启动eclipse,打开菜单 WindowPreferences,在弹出的窗口当中如果能在左边导航树中发现 Drools节点就表示Drools5 IDE 安装成功了三、Java 部分-public class HelloWorldExample public static final void main(final String args) final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); / this will parse and compile in one s
4、tep kbuilder.add( ResourceFactory.newClassPathResource( HelloWorld.drl,HelloWorldExample.class ),ResourceType.DRL ); / Check the builder for errors if ( kbuilder.hasErrors() ) System.out.println( kbuilder.getErrors().toString() ); throw new RuntimeException( Unable to compile HelloWorld.drl. ); / ge
5、t the compiled packages (which are serializable) final Collection pkgs = kbuilder.getKnowledgePackages(); / add the packages to a knowledgebase (deploy the knowledge packages). final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages( pkgs ); final StatefulKnow
6、ledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.setGlobal( list, new ArrayList() ); /ksession.addEventListener( new DebugAgendaEventListener() ); /ksession.addEventListener( new DebugWorkingMemoryEventListener() ); final Message message = new Message(); message.setMessage( Hell
7、o World ); message.setStatus( Message.GOODBYE ); ksession.insert( message ); ksession.fireAllRules(); / Remove comment if using logging / logger.close(); ksession.dispose(); public static class Message public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; pr
8、ivate int status; public Message() public String getMessage() return this.message; public void setMessage(final String message) this.message = message; public int getStatus() return this.status; public void setStatus(final int status) this.status = status; public static Message doSomething(Message m
9、essage) return message; public boolean isSomething(String msg, List list) list.add( this ); return this.message.equals( msg ); 四、Drl部分package org.drools.examples.helloworld import com.drools.main.HelloWorldExample.Message;global java.util.List list rule Hello World dialect mvel when m : Message( sta
10、tus = Message.HELLO, bs : message ) then System.out.println( message );/ modify ( m ) setMessage( Goodbyte cruel world ),/ setStatus( Message.GOODBYE ) ; modify ( m ) message = Goodbye cruel world, status = Message.GOODBYE ;endrule Good Bye dialect java when Message( status = Message.GOODBYE, $bs : message ) then System.out.println( $bs );end