系统默认支持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"));
分享到:
相关推荐
随着版本的不断升级,Drools的功能也在不断增强,例如增加了对Spring框架的支持,使得在实际项目中使用Drools变得更加方便和高效。 #### Drools7之HelloWorld **3.1 HelloWorld实例** Drools7是Drools系列的另一...
在本文中,我们将探讨如何使用Java规则引擎Drools进行自动排班。Drools是一个强大的、基于规则的系统,它允许开发者以声明式的方式表达复杂的业务逻辑,类似于专家系统。本文以一个简化的运输车队排班需求为例,展示...
使用 `import` 命令引入需要在规则中使用的类,如 `import com.sample.DroolsTest.Message;`。这使得你可以在规则中直接使用这些类的实例和方法,而无需全限定名。 3. **全局变量(Global)**: `global` 关键字...
在积分发放场景中,可能的规则包括:如用户达到一定消费金额可获得积分,特定日期或活动期间积分翻倍等。 2. **事实对象**:在Drools中,业务数据被称为“事实”,它们是规则引擎处理的对象。例如,用户信息、订单...
2. **导入语句**:导入需要在规则中使用的类。 3. **全局变量声明**:定义可在整个规则文件中访问的变量。 4. **函数定义**:自定义函数以封装可重用的逻辑。 5. **规则定义**:具体的业务规则实现。 #### 三、具体...
- 在Drools中合理使用数据结构(如列表、集合等)来存储和检索数据。 **5. 减少冗余代码** - 通过抽象出公共逻辑减少重复代码,提高代码可维护性和执行效率。 **6. 采用高效的模式匹配策略** - 使用合适的匹配算法...
droolsDemo是一个基于Drools规则引擎开发的示例项目,它主要展示了如何在实际应用中定义和执行业务规则。Drools是JBOSS公司提供的一个开源规则引擎,它允许开发者通过规则来控制应用程序的行为,尤其适用于那些复杂...
在这个例子中,Fact对象可能包含用户ID、开户日期、充值记录和充值金额等属性。例如,我们可以创建一个名为`UserBilling`的类,包含如下的属性: ```java public class UserBilling { private String userId; ...
比较Drools中相同对象的两个实例(按列表) 2017-08-07 获取规则中的名称和包装 2017-08-11 全局用法示例 2017-08-11 查询用法示例 2017-08-20 地图用法示例 2017-09-04 FactHandler用法示例 2017-09-17 ...
工作流引擎和规则引擎在IT领域中扮演着至关重要的角色,尤其在企业级应用和自动化流程管理中。本文将深入探讨这两个概念,分析国内外主流的工作流引擎与规则引擎的特点及功能。 一、背景 工作流引擎是实现业务流程...
6. **规则服务**:结合Drools规则引擎,实现流程中的条件判断和业务决策。 在DEMO中,可能包含以下步骤: 1. **流程定义**:使用BPMN 2.0模型定义一个简单的流程,比如请假审批流程,包含开始事件、结束事件、审批...
4. **规则引擎(Drools)**:JBPM 4.4集成了Drools规则引擎,使流程执行可以根据业务规则进行决策。Drools提供了一个强大的规则语言,能够灵活地添加、修改和执行业务规则。 5. **事件处理**:JBPM支持事件驱动的流程...