Events 流口水。无法转换为java.lang.Number
我有以下声明:Events 流口水。无法转换为java.lang.Number,events,casting,drools,drools-fusion,Events,Casting,Drools,Drools Fusion,我有以下声明: declare Event @role(event) @timestamp(time) //@expires(100ms) //params : Map<String, Object> param : long time : long end declare Expectation event: Event state: int //-1 pending, 0 viol
declare Event
@role(event)
@timestamp(time)
//@expires(100ms)
//params : Map<String, Object>
param : long
time : long
end
declare Expectation
event: Event
state: int //-1 pending, 0 violated, 1 fulfilled
end
declare ExpectationLeftArmStr extends Expectation
end
而且,$ev
是我在规则中使用的正确事件。
错误是:rec.dom.LeftArmStr无法强制转换为java.lang.Number
,其中LeftArmStr
是$ev
Exception in thread "main" Exception executing consequence for rule "Operazions on LeftArmStr event 33399" in rec.dom: java.lang.ClassCastException: rec.dom.LeftArmStr cannot be cast to java.lang.Number
at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
at org.rec.Session.notify(Session.java:136)
at org.ece.reasoner.ReasonerECE.notifyEvent(ReasonerECE.java:73)
at org.ece.main.MainLaucher.main(MainLaucher.java:245)
Caused by: java.lang.ClassCastException: rec.dom.LeftArmStr cannot be cast to java.lang.Number
at org.drools.base.evaluators.BeforeEvaluatorDefinition$BeforeEvaluator.evaluateCachedRight(BeforeEvaluatorDefinition.java:306)
at org.drools.rule.constraint.EvaluatorConstraint.isAllowedCachedRight(EvaluatorConstraint.java:80)
at org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaConstraints.java:134)
at org.drools.reteoo.JoinNode.propagateFromRight(JoinNode.java:156)
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:141)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:192)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:186)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05c.defaultConsequence(Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05c.java:19)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05cDefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05cDefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
... 8 more
我读到这篇文章可能是一个错误,不允许您输入事件作为参数?引用:$ev是一个正确的事件,我用在规则中。错误是“rec.dom.LeftArmStr无法转换为java.lang.Number”,其中LeftArmStr为$ev。结束引用-这是不明确的。$ev的类型是声明的事件还是LeftArmStr?$ev是扩展事件的LeftArmStr这可能是一个bug,但无法从您发布代码的方式来判断。需要一套完整的(!)代码来再现效果和您使用的Drools版本。我推荐Drools用户列表。
Exception in thread "main" Exception executing consequence for rule "Operazions on LeftArmStr event 33399" in rec.dom: java.lang.ClassCastException: rec.dom.LeftArmStr cannot be cast to java.lang.Number
at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
at org.rec.Session.notify(Session.java:136)
at org.ece.reasoner.ReasonerECE.notifyEvent(ReasonerECE.java:73)
at org.ece.main.MainLaucher.main(MainLaucher.java:245)
Caused by: java.lang.ClassCastException: rec.dom.LeftArmStr cannot be cast to java.lang.Number
at org.drools.base.evaluators.BeforeEvaluatorDefinition$BeforeEvaluator.evaluateCachedRight(BeforeEvaluatorDefinition.java:306)
at org.drools.rule.constraint.EvaluatorConstraint.isAllowedCachedRight(EvaluatorConstraint.java:80)
at org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaConstraints.java:134)
at org.drools.reteoo.JoinNode.propagateFromRight(JoinNode.java:156)
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:141)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:192)
at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:186)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05c.defaultConsequence(Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05c.java:19)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05cDefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at rec.dom.Rule_Operazions_on_LeftArmStr_event____33399_4678ddba7e884b11b1acf302cef8a05cDefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
... 8 more