drools的date解析问题

在jboss-tools的drools编辑器中,以下的规则解析和运行都有问题:

 写道
rule "Hello World"
when
m : Message( status == Message.HELLO, myMessage : message, date > "27-jun-2011" )
then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end

 抛出这样一个错误:

 写道
Invalid date input format: [27-jun-2011] it should follow: [dd-MMM-yyyy]

 若尝试将"27-jun-2011"改为"27-六月-2011",问题得到解决。可见这是国际化的SimpleTextFormatter的问题,因为使用的是中文环境,eclipse的java vm将drools缺省的日期格式"dd-MMM-yyyy"中间部分国际化了。如果我们沿袭此限制去改写规则,规则就不可能在多地区通用。

 

可以通过在drools引擎调用的开头,调用System.setProperty("drools.dateformat", "dd-MM-yyyy"),而后在规则中统一使用"27-06-2011"这样的日期格式,以绕开此问题。

 

 

 

但即便如此,eclipse IDE还是有错误报出,解决的办法,可以设置eclipse.ini,加入-Ddrools.dateformat=dd-MM-yyyy。这样既照顾了规则本身的跨地区特性,又使eclipse IDE不会显示解析错误。

 

注意,在生产环境所在规则引擎的JVM设置中,也需要设置此参数,以保证开发和生产的一致性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值