Ошибка Drools «java.lang.RuntimeException» всякий раз, когда я использую условные значения

#drools

#пускает слюни

Вопрос:

Здравствуйте, я получаю следующую ошибку в моей программе drools:

java.lang.RuntimeException: не удалось получить KieModule, ошибки существовали

Мой файл .drl выглядит следующим образом:

 package com.baeldung.drools.rules

import com.model.Variable;
import com.model.Recommendation;

global com.model.Recommendation recommendation;
dialect "mvel" 

rule "Rule 0"
when
variable1:Variable(Name=="Number of cigs per day", NumericValue>0)             
then
recommendation.setRecommendation("Encourage smoking cessation.");
end
rule "Rule 1"
when
variable1:Variable(Name=="Smoker", Value=="Yes")             
then
recommendation.setRecommendation("Encourage smoking cessation.");
end
 

В моем переменном объекте я добавил двойное числовое значение и строковое значение. Если я удалю правило 0, компилятор .drl будет работать и обнаружит правило 1, однако с правилом 0 компилятор всегда генерирует ошибку компилятора KieModule. Я не знаю, что не так с моим кодом и почему он не компилируется с правилом с условным сравнением.

Ответ №1:

Я решил свою проблему. Проблема была не в .файл drl, но вместо этого в моем переменном классе, у которого не было общедоступного конструктора getNumericValue().