我是Drools的新手,并试图全面了解它......
我有一个我在Workbench 6.3.0中创建的规则。最终:
package demo.dummyapp;
import java.lang.Boolean;
rule "RuleThree"
dialect "mvel"
when
SMS(sendMessage == true )
then
System.out.println( "This message is being sent" );
end
从Postman我使用REST API调用以下内容:
POST: http://myserver/kie-server-6.3.0.Final-ee7/services/rest/server/containers/instances/dummyapp
{
"lookup": "ksession1",
"commands": [{
"insert": {
"return-object": true,
"object": {
"demo.dummpyapp.SMS": {
"sendMessage": true
}
}
}
}, {
"fire-all-rules": "RuleThree"
}]
}
服务器的响应成功:
{
"type": "SUCCESS",
"msg": "Container dummyapp successfully called.",
"result": "{\n \"results\" : [ {\n \"key\" : \"RuleThree\",\n \"value\" : 0\n } ],\n \"facts\" : [ ]\n}"
}
但是我没有在server.log中看到我的println消息......所以我怀疑规则是按预期发射的?任何建议我都要感激。
答案 0 :(得分:2)
POST正文的JSON中有拼写错误。对象是
demo.dummyapp.SMS
而不是
demo.dummpyapp.SMS
成功调用容器但没有匹配规则。因此,JSON响应中的value
键为0
。
尝试发出此POST请求:
POST: http://myserver/kie-server-6.3.0.Final-ee7/services/rest/server/containers/instances/dummyapp
{
"lookup": "ksession1",
"commands": [{
"insert": {
"return-object": true,
"object": {
"demo.dummyapp.SMS": {
"sendMessage": true
}
}
}
}, {
"fire-all-rules": "RuleThree"
}]
}