我使用Jboss BRMS中的决策表创建了一个规则,并使用kie-server部署为REST服务。但无法找到如何将参数传递给服务。
当我创建一个测试场景并执行规则服务时,它运行正常。
kie-container向我展示了结束点
http://host:port/kie-server/services/rest/server/containers/container1
但我无法找到如何使用Rest Client(高级休息客户端)将参数传递给服务。
我使用Request发送此参数,它给出了以下响应。
REQUEST
{
"commands":[
{
"insert":{
"out-identifier":"Customer",
"return-object":"true",
"object": {
"example.si.Customer":{
"time":3,
"age":70,
"gender":"MALE"
}
}
}
},
{
"fire-all-rules":""
}
]
}
头 X-KIE-ContentType:JSON 接受:application / json Content-Type:application / json 授权:基本a2llc2VydmVyOmtpZXNlcnZlcjEh
RESPONSE
{
"type": "SUCCESS"
"msg": "Container sinterest5 successfully called."
"result": "{ "results" : [ { "key" : "", "value" : 0 }, { "key" : "Customer", "value" : {"example.si.Customer":{ "time" : 3, "age" : 70, "interest" : null, "gender" : "MALE", "rate" : null, "amount" : null }} } ], "facts" : [ { "key" : "Customer", "value" : {"org.drools.core.common.DefaultFactHandle":{ "external-form" : "0:5:695977235:695977235:5:DEFAULT:NON_TRAIT:example.si.Customer" }} } ] }"
}
我的规则是......
package Deciding_Rates;
//从决策表生成 import example.si.Customer; function void interest(int time,int rate,int amount) {System.out.println((time * rate * amount)/ 100); System.out.println(System.currentTimeMillis());} 锁定活动为真 //规则值为C15,标题为C10 规则" DecidingRate_15" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time< 5,Age> = 65,Gender ==" MALE") 然后 修改($客户){setRate(10)}; System.out.println(" Time< 5,Senior,Male"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
// C16处的规则值,C10处的标题 规则" DecidingRate_16" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time< 5,Age> = 65,Gender ==" FEMALE") 然后 修改($客户){setRate(11)}; System.out.println(" Time< 5,Senior,Female"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
// C17处的规则值,C10处的标题 规则" DecidingRate_17" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time< 5,Age< 65,Gender ==" MALE") 然后 修改($客户){setRate(8)}; System.out.println("时间< 5,年轻,男性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
//规则值为C18,标题为C10 规则" DecidingRate_18" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time< 5,Age< 65,Gender ==" FEMALE") 然后 修改($客户){setRate(9)}; System.out.println("时间< 5,年轻,女性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
//规则值为C19,标题为C10 规则" DecidingRate_19" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time> = 5,Age> = 65,Gender ==" MALE") 然后 修改($客户){setRate(12)}; System.out.println("时间> = 5,高级,男性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
// C20处的规则值,C10处的标题 规则" DecidingRate_20" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time> = 5,Age> = 65,Gender ==" FEMALE") 然后 修改($客户){setRate(13)}; System.out.println("时间> = 5,高级,女性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
// C21处的规则值,C10处的标题 规则" DecidingRate_21" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time> = 5,Age< 65,Gender ==" MALE") 然后 修改($客户){setRate(10)}; System.out.println("时间> = 5,年轻,男性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
// C22处的规则值,C10处的标题 规则" DecidingRate_22" ruleflow-group" Rate" 什么时候 $ customer:Customer(Time> = 5,Age< 65,Gender ==" FEMALE") 然后 修改($客户){setRate(11)}; System.out.println("时间> = 5,年轻,女性"); 兴趣($ customer.getTime(),$ customer.getRate(),100); 端
我在做错什么吗? Sysouts在服务器日志中不可见。我不确定我的规则是否会被解雇。