Drools结合maven

来源:互联网 发布:python rpc java 编辑:程序博客网 时间:2024/06/02 03:10


1.创建一个maven工程

2.设置jre和tomcat

3.添加依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.drools</groupId><artifactId>drools-core</artifactId><version>6.4.0.Final</version></dependency><dependency><groupId>org.drools</groupId><artifactId>drools-compiler</artifactId><version>6.4.0.Final</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.22</version></dependency></dependencies>
4.在resources下创建META-INF和rules文件夹

5.在META-INF文件夹下创建kmodule.xml

<?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"/>    </kbase></kmodule>
6.在rules创建Sample.drl

package com.sample import com.sample.DroolsTest.Message; rule "Hello World"    when        m : Message( status == Message.HELLO, myMessage : message )    then        System.out.println( myMessage );        m.setMessage( "Goodbye cruel world" );        m.setStatus( Message.GOODBYE );        update( m );endrule "GoodBye"    when        Message( status == Message.GOODBYE, myMessage : message )    then        System.out.println( myMessage );end
如下图:

7.在src/main/java下创建com.sample.DroolsTest

package com.sample;import org.kie.api.KieServices;import org.kie.api.runtime.KieContainer;import org.kie.api.runtime.KieSession;/** * 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        KieServices ks = KieServices.Factory.get();        KieContainer kContainer = ks.getKieClasspathContainer();        KieSession kSession = kContainer.newKieSession("ksession-rules");            // go !            Message message = new Message();            message.setMessage("Hello World");            message.setStatus(Message.HELLO);            kSession.insert(message);            kSession.fireAllRules();        } catch (Throwable t) {            t.printStackTrace();        }    }    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;        }    }}
如图:

8.运行控制台打印出结果



原创粉丝点击