我正在tomcat上运行Drools 7.7.0.final KIE服务器。通过对KIE服务器的RESTful调用启动容器时,我看到此行为。
永远不会创建容器,并且RESTful调用会无限期挂起。当我查询服务器时,我看到容器卡在了'status =“ Creating”'中。
这并不总是发生。它似乎取决于规则。在大多数情况下,我的LHS(when子句)为以下形式。
myObject((field1!= null)&& field2)...等 ....其中field2是布尔值。
当我尝试类似...... pp之类的复杂事物时,难度似乎会出现
myObject(JsonMappper.truth(propertiesString,“ field2”))
......其中propertiesString是包含JSON的字符串,而JsonMapper.truth是静态方法,该方法基于field2的解码值返回一个布尔值。
奇怪的是,我从未收到编译错误,并且在删除/添加各种规则时,行为发生了不可预测的变化。有时,即使规则文件中存在带有JsonMapper.truth的多个规则实例,也会创建该容器。规则之间似乎存在一些微妙的相互作用。
我的问题是: 1)在when子句中使用像这样的自定义java函数是否存在一些危险? 2)有没有办法确定为什么容器创建挂起?我找不到任何有用的日志。似乎没有什么有用的东西可以写到通常的tomcat日志中。 3)有没有人看到这种行为(容器创建挂起)?
答案 0 :(得分:0)
我有类似的问题。但是我认为这与枚举用法有关。将版本切换为“ 7.9.0.Final”可修复所有问题。