`
aimer311
  • 浏览: 96454 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

在drools规则条件中使用日期进行比较

    博客分类:
  • java
阅读更多
系统默认支持dd-MMM-yyyy格式.
规则条件编写如下:
$dateInputBox : DateInputBox(verifyDate > "12-Oct-2005")

日期设置如下:
DateFormat df = new SimpleDateFormat("dd-mmm-yyyy",Locale.US);
String s = df.format(new Date());
dateInputBox.setVerifyDate(df.parse(s));

不知道为什么就出现Exception,内容如下:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid date input format: [12-Oct-2005] it should follow: [dd-MMM-yyyy]
	at org.drools.base.evaluators.DateFactory.parseDate(DateFactory.java:526)
	at org.drools.base.evaluators.DateFactory.getRightDate(DateFactory.java:536)
	at org.drools.base.evaluators.DateFactory.access$400(DateFactory.java:46)
	at org.drools.base.evaluators.DateFactory$DateGreaterEvaluator.evaluate(DateFactory.java:389)
	at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:62)
	at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:81)
	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
	at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
	at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
	at org.drools.reteoo.Rete.assertObject(Rete.java:175)
	at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
	at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)
	at com.shonetown.common.drools.DroolsTemplate.assertObject(DroolsTemplate.java:85)
	at com.shonetown.common.drools.DroolsTemplate.getWorkingMemory(DroolsTemplate.java:58)
	at com.shonetown.common.drools.service.DateInputBoxService.startRule(DateInputBoxService.java:13)
	at com.shonetown.common.drools.ComponentDroolsServiceProxy.startDateInputBoxDrools(ComponentDroolsServiceProxy.java:58)
	at com.shonetown.common.drools.ComponentDroolsServiceProxy.startComponentDrools(ComponentDroolsServiceProxy.java:49)
	at com.shonetown.common.drools.ComponentDroolsServiceProxy.<init>(ComponentDroolsServiceProxy.java:36)
	at com.shonetown.common.drools.ComponentDroolsServiceImpl.<init>(ComponentDroolsServiceImpl.java:31)
	at com.shonetown.common.drools.ComponentDroolsServiceImpl.main(ComponentDroolsServiceImpl.java:61)

不知道有谁有经验的,帮忙说明下!

后来我通过设置drools.dateformat,让系统支持dd-MM-yyyy,这样就可以了,代码如下:
drl文件:
$dateInputBox : DateInputBox(verifyDate > "12-12-2005")

java代码:
String format = "dd-MM-yyyy";
System.setProperty("drools.dateformat", format);
DateFormat df = new SimpleDateFormat(format);
dateInputBox.setVerifyDate(df.parse("12-12-2008"));
0
0
分享到:
评论

相关推荐

    从Drools规则引擎到风控反洗钱系统V0.2.3

    随着版本的不断升级,Drools的功能也在不断增强,例如增加了对Spring框架的支持,使得在实际项目中使用Drools变得更加方便和高效。 #### Drools7之HelloWorld **3.1 HelloWorld实例** Drools7是Drools系列的另一...

    使用java规则引擎Drools自动排班前言.doc

    在本文中,我们将探讨如何使用Java规则引擎Drools进行自动排班。Drools是一个强大的、基于规则的系统,它允许开发者以声明式的方式表达复杂的业务逻辑,类似于专家系统。本文以一个简化的运输车队排班需求为例,展示...

    drools语法详解.doc

    使用 `import` 命令引入需要在规则中使用的类,如 `import com.sample.DroolsTest.Message;`。这使得你可以在规则中直接使用这些类的实例和方法,而无需全限定名。 3. **全局变量(Global)**: `global` 关键字...

    drools5 demo project

    在积分发放场景中,可能的规则包括:如用户达到一定消费金额可获得积分,特定日期或活动期间积分翻倍等。 2. **事实对象**:在Drools中,业务数据被称为“事实”,它们是规则引擎处理的对象。例如,用户信息、订单...

    DROOLS语法详解

    2. **导入语句**:导入需要在规则中使用的类。 3. **全局变量声明**:定义可在整个规则文件中访问的变量。 4. **函数定义**:自定义函数以封装可重用的逻辑。 5. **规则定义**:具体的业务规则实现。 #### 三、具体...

    drools语法参考和性能优化技巧

    - 在Drools中合理使用数据结构(如列表、集合等)来存储和检索数据。 **5. 减少冗余代码** - 通过抽象出公共逻辑减少重复代码,提高代码可维护性和执行效率。 **6. 采用高效的模式匹配策略** - 使用合适的匹配算法...

    droolsDemo

    droolsDemo是一个基于Drools规则引擎开发的示例项目,它主要展示了如何在实际应用中定义和执行业务规则。Drools是JBOSS公司提供的一个开源规则引擎,它允许开发者通过规则来控制应用程序的行为,尤其适用于那些复杂...

    JAVA规则引擎[Drools]--实例篇

    在这个例子中,Fact对象可能包含用户ID、开户日期、充值记录和充值金额等属性。例如,我们可以创建一个名为`UserBilling`的类,包含如下的属性: ```java public class UserBilling { private String userId; ...

    ruleEngine:各种规则引擎demo,包含drools,easy rule

    比较Drools中相同对象的两个实例(按列表) 2017-08-07 获取规则中的名称和包装 2017-08-11 全局用法示例 2017-08-11 查询用法示例 2017-08-20 地图用法示例 2017-09-04 FactHandler用法示例 2017-09-17 ...

    国内外主流工作流引擎与规则引擎分析报告.docx

    工作流引擎和规则引擎在IT领域中扮演着至关重要的角色,尤其在企业级应用和自动化流程管理中。本文将深入探讨这两个概念,分析国内外主流的工作流引擎与规则引擎的特点及功能。 一、背景 工作流引擎是实现业务流程...

    JBPM工作流DEMO

    6. **规则服务**:结合Drools规则引擎,实现流程中的条件判断和业务决策。 在DEMO中,可能包含以下步骤: 1. **流程定义**:使用BPMN 2.0模型定义一个简单的流程,比如请假审批流程,包含开始事件、结束事件、审批...

    JBPM学习视频15~17

    4. **规则引擎(Drools)**:JBPM 4.4集成了Drools规则引擎,使流程执行可以根据业务规则进行决策。Drools提供了一个强大的规则语言,能够灵活地添加、修改和执行业务规则。 5. **事件处理**:JBPM支持事件驱动的流程...

Global site tag (gtag.js) - Google Analytics