2016-01-04 2 views
2

Я новичок в Drools и пытается получить мою голову вокруг него все ...Drools DRL файл и вызов от вызова API

У меня есть правило, которое я создал в Workbench 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}" 
} 

однако я не вижу свое сообщение println в server.log ... поэтому я сомневаюсь, что правило срабатывает, как ожидалось? Любой совет я был бы благодарен.

+0

Вы уверены, что что Println заканчивается в server.log? - Или: выбросьте исключение, которое должно появиться. – laune

+0

ничего не отображается в журнале сервера вообще. Я раздели, но вернусь к основам. Я либо хочу увидеть ошибку или println, но ничего? – NewbieGrails

+0

Извините неправильно поняли ваш вопрос ... Никакое исключение не выбрано - значение sendMessage является истинным или ложным? Я не вижу, как я могу подтвердить, что мой файл правил работает правильно? – NewbieGrails

ответ

1

В JSON корпуса POST есть опечатка. Объект

demo.dummyapp.SMS 

и не

demo.dummpyapp.SMS 

Контейнер был вызван успешно, но правило не совпадают. Таким образом, ключ value в ответе JSON был 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" 
}] 
}