Drools规则引擎远程加载规则文件

1.创建一个drools工程:


2.创建一个Dynamic Web Project(主要体现远程加载规则文件,将规则文件放在这个工程中,并配上服务器):


  其中,Sample.drl是个规则文件,在浏览器中访问如图所示:


3.再drools工程中创建一个类,我这里类名为:RemoteLoadRule,意思就是远程加载规则文件


代码为:

package com.sample;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;

import com.sample.DroolsTest.Message;

/**
 * 远程加载规则文件
 * @author sihang
 *
 */
public class RemoteLoadRule {
	public static void main(String [] args) {
		//远程加载规则包
		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
		kbuilder.add(ResourceFactory.newUrlResource("http://localhost:8080/test/Sample.drl"), 
				ResourceType.DRL);
		//创建知识库
		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
		//将规则包加载到知识库中
		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
		
		//创建Fact对象
		Message message = new Message();
        message.setMessage("Hello World");
        message.setStatus(Message.HELLO);
        //创建KnowledgeSession,将Fact对象插入到WorkingMemory中
        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        ksession.insert(message);
        ksession.fireAllRules();
        ksession.dispose();
	}
}

4.运行RemoteLoadRule类,结果如下:


远程加载规则文件成功!

其中:如果远程 加载的规则是基于决策表类型的规则文件,则将ResourceType指定为决策表类型就可以了!

希望这篇文章对于研究规则引擎的人有所帮助!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值