如何将String-to-String映射传递给Drools会话

时间:2014-07-23 03:16:10

标签: java drools

我有Drools将值插入数据库的规则。我想给会话一个字符串值的映射,我有必须写入的字符串值。所以在我的Java文件中,像这样:

StatefulKnowledgeSession session = ...    
Map<String, String> stateToPostalCode = new HashMap<>();
stateToPostalCode.insert("Texas", "TX");
stateToPostalCode.insert("New Jersey", "NJ");
....
session.insert(stateToPostalCode);

然后我的规则可以将州转换为邮政编码。

但插入它并不起作用。我得到了一个堆栈跟踪和

的投诉
  

java.lang.ClassCastException:java.lang.String无法强制转换为   java.lang.Boolean的

插入Map<String, Integer>作品,但不是Map<String, String>。我究竟做错了什么?还有另一种方法可以实现我的目标吗?

1 个答案:

答案 0 :(得分:0)

更改规则修复了问题。这是正确的语法。

when
...        
   $map : Map($value: this["Texas"])