我们在用C#编写的客户端上使用Drools引擎。我们正在使用IKVM将drools jar和我们的java bean转换为使用IKVM的dll。我们的规则类似于: -
rule "aggregate rule"
when
$b : Bill(billAmount > 100)
$n : Number(doubleValue > 100) from accumulate ( $l : LineItem() from $b.findItems("color", "blue"), sum($l.getSellingValue()))
then
VoucherSeries fact0 = new VoucherSeries();
fact0.setSeriesCode( "aggregate voucher" );
insert(fact0 );
voucherlist.add(fact0);
System.out.println("sum" + $n);
end
当使用基于java的drools API运行时,此规则正常工作,但在使用IKVM转换的drools运行它时,会引发以下错误: -
无法将“AccumulateMemory”类型的对象转换为“FromMemory”类型。
关于可能出错的任何想法?
答案 0 :(得分:0)
这可能有很多原因。例如classloading问题。它可能是IKVM中的一个错误。等
我认为不会在这里收到有用的答案。您应该联系IKVM的邮件列表,其中包含许多详细信息,例如IKVM版本,如何编译dll,以及用于演示问题的可运行示例。
此问题只有debug才能解决。