`
Audion
  • 浏览: 13699 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

Drools 3.1M是不是有bug啊?

阅读更多
快要郁闷死了。简直求助都找不到地方。唉!悔不该涉入这样一个研究的人少资料又不多的领域。可是现在也没有退路了。

两个问题:
1、规则文件是一样的。可是以下代码:
for (;;) {
	checkServer(server);

	final FactHandle obj = mem.assertObject(server);
	mem.fireAllRules();
	logger.writeToDisk();
	Thread.sleep(1000);
	mem.retractObject(obj);
}

在Drools3.06中完全可以执行,没有任何问题。可是到了3.1M中,第一次到“mem.retractObject(obj);”处就退出,提示"NullPointerException"。晕倒!找了n久也不知道为什么???

2、drl文件中的函数:
function void computeUsage(Server server, ComputeUsage usage) {
	//double use;
	//usage = (avail/sum)*100;
	//use = avail*100;
	System.out.println("The usage rate of the server ["+server.getHost()+"] is {1"+(usage.getAvail()/usage.getSum())+"}\n");

}

我在rhs中用computeUsage(server,usage)[server和usage都是lhs中绑定的的变量]调用它,它就一直说:
引用
Rule Compilation error The method computeUsage(Server, ComputeUsage) in the type ComputeUsage is not applicable for the arguments (Server, ComputeUsage)

这个错误在3.06和3.1M中都存在。function不是这样定义的么?应该怎么用啊?

真是服了这个东东了
分享到:
评论
1 楼 sonic_yj 2007-04-19  
Audion 写道
快要郁闷死了。简直求助都找不到地方。唉!悔不该涉入这样一个研究的人少资料又不多的领域。可是现在也没有退路了。

两个问题:
1、规则文件是一样的。可是以下代码:
for (;;) {
	checkServer(server);

	final FactHandle obj = mem.assertObject(server);
	mem.fireAllRules();
	logger.writeToDisk();
	Thread.sleep(1000);
	mem.retractObject(obj);
}

在Drools3.06中完全可以执行,没有任何问题。可是到了3.1M中,第一次到“mem.retractObject(obj);”处就退出,提示"NullPointerException"。晕倒!找了n久也不知道为什么???

2、drl文件中的函数:
function void computeUsage(Server server, ComputeUsage usage) {
	//double use;
	//usage = (avail/sum)*100;
	//use = avail*100;
	System.out.println("The usage rate of the server ["+server.getHost()+"] is {1"+(usage.getAvail()/usage.getSum())+"}\n");

}

我在rhs中用computeUsage(server,usage)[server和usage都是lhs中绑定的的变量]调用它,它就一直说:
引用
Rule Compilation error The method computeUsage(Server, ComputeUsage) in the type ComputeUsage is not applicable for the arguments (Server, ComputeUsage)

这个错误在3.06和3.1M中都存在。function不是这样定义的么?应该怎么用啊?

真是服了这个东东了



把函数放在规则外,以结果指导调用,不要嵌入在一起,Drools不能调试,这样看不出问题出在哪里

相关推荐

    DRools BRMS Rule创建问题?

    当有新的事实(Fact)被插入到工作记忆中时,Drools会自动执行与之匹配的规则。 在创建Drools规则时,可能会遇到以下问题: 1. 规则语法错误:DRL语言有其特定的语法规则,不熟悉的话容易出错。比如,条件部分的...

    drools drools drools drools drools

    drools 是一个强大的规则引擎和业务规则管理系统,用于在Java应用程序中实现复杂的业务逻辑。它基于规则推理,允许用户以声明式的方式定义规则,并在运行时执行这些规则。drools 提供了一个高效的决策自动化框架,...

    drools7.25中文文档+drools技术指南.zip

    总之,这份学习资料提供了全面的Drools7.25知识,无论是初学者还是有经验的开发者,都能从中受益匪浅。通过阅读和实践,你将能够利用Drools构建出灵活、可扩展的业务规则系统,提升项目开发的效率和质量。

    规则引擎处理复杂对象论坛1

    在Drools早期版本(如3.06和3.1M)中,规则定义存在一定的限制,尤其是对于对象的复杂类型的域约束。原始问题中提到,规则引擎似乎无法直接通过域限定的方式来处理对象的复杂类型,比如在示例代码中,`Customer`对象...

    Drools

    Drools的应用场景广泛,常见的有金融风险评估、保险索赔处理、医疗诊断辅助、供应链管理等。通过Drools,企业可以将业务专家的知识转化为可执行的代码,从而实现智能化决策,提高运营效率。 在实际开发中,Drools的...

    Drools应用.doc

    Drools DRL语言中有一些保留字,如"rule"、"when"、"then"、"from"、"not"、"exists"等,用于构建规则结构。 3.3.4 注释 在DRL文件中,可以使用"--"单行注释或"/* */"多行注释来解释和说明规则。 在实际使用中,...

    Drools5.3官网手册

    ### Drools 5.3 官方手册知识点总结 #### 一、Apache Camel 集成 ##### 1.1 Camel Camel 提供了一个轻量级的消息总线框架,用于将信息输入到 Drools 中并从中输出。为了简化集成过程,Drools 引入了两个关键组件...

    规则引擎Drools.NET移植版

    **规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。它允许开发者将业务逻辑以规则的形式编写,使得业务规则可以独立于应用程序代码进行...

    Drools6.5 部署Drools Workbench和Kie Server笔记

    在本文中,我们将深入探讨如何部署Drools Workbench和Kie Server,这两个组件是Drools6.5——一个强大的规则引擎平台的关键部分。Drools Workbench提供了一个直观的用户界面,用于创建、测试和管理业务规则,而Kie ...

    Drools6 和 Drools7技术指南-中文文档.zip

    Drools开发最全中文版技术指南。 Drools开发最全中文版技术指南,介绍了常见的drools如何进行开发,注意是:中文版中文版中文版! drools 中文文档 规则引擎 drools6 drools7 Java

    Drools workbench文件及DEMO项目代码

    Drools工作台(Drools Workbench)是一款基于规则引擎Drools的集成开发环境,主要用于创建、测试和管理业务规则。它提供了一个图形化的用户界面,使得业务分析师和开发人员可以方便地进行规则的编写和管理。在这个...

    drools动态生成规则文件

    当新的事实被插入工作记忆,drools会检查这些事实是否匹配已存在的规则条件,如果匹配,就会触发规则的执行。 五、事件驱动编程 drools支持事件驱动编程模型,可以监听特定的事件并根据事件动态生成和应用规则。...

    Drools规则引擎使用demo

    Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...

    droolsdroolsdrools

    《 Drools 深度探索:实例代码解析与实践指南》 Drools,作为一款强大的规则引擎,广泛应用于业务逻辑复杂、决策流程多变的IT系统中。它基于Java平台,采用领域特定语言(DSL)来编写业务规则,使得业务人员也能...

    Drools7 + Springboot2 动态更新规则

    在本文中,我们将深入探讨如何将Drools 7与Spring Boot 2集成,实现动态更新规则的功能。Drools是一款强大的业务规则管理系统,而Spring Boot是Java领域广泛使用的微服务开发框架。通过结合这两者,我们可以构建一个...

    Drools规则执行顺序

    2. **事实插入顺序**:Drools 的规则引擎基于事件驱动模型,当新的事实(数据对象)被插入到工作内存时,引擎会检查是否有匹配的规则。如果多个规则都能匹配同一个事实,那么这些规则会按照它们被定义的顺序执行。 ...

    springboot+drools动态模板引擎

    SpringBoot和Drools的整合应用为业务规则的管理和执行提供了强大的灵活性。SpringBoot作为一个轻量级的Java开发框架,简化了Spring应用的初始化和配置,使得开发过程更加高效。而Drools则是一个强大的规则引擎,它...

Global site tag (gtag.js) - Google Analytics