2016-01-04 39 views
2

我是新來的Drools的,並試圖讓我的頭輪所有調用...Drools的DRL文件,並從API調用

我有我的工作臺6.3.0.Final創建一個規則:

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 

,並從郵差我打電話使用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

你確定一個println在server.log結束了? - 或者:拋出一個異常,應該顯示出來。 – laune

+0

根本沒有顯示在服務器日誌中。我已經剝奪了,但重新回到基礎。我要麼想看到一個錯誤或println,但沒有? – NewbieGrails

+0

抱歉誤會了你的問題... sendMessage的值是真還是假都沒有引發異常?我沒有看到一種方法可以驗證我的規則文件是否正常工作? – NewbieGrails

回答

1

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" 
}] 
} 
相關問題