Hi guys,
I have a question regarding the import function feature in Drools 5.1.0M.
I am reading the Drools JBoss Rules 5.0 book Developer's guide by Michal Bali and
tried one of the examples but somehow I couldn't get my rules work with the method
that has varargs.
Here's what I have (copied from page 123):
public class ValidationHelper {
public static void error (RuleContext kcontext, Object... context) {
KnowledgeRuntime knowledgeRuntime = kcontext.getKnowledgeRuntime();
ValidationReport validationReport =
(ValidationReport)knowledgeRuntime.getGlobal("validationReport");
ReportFactory reportFactory = (ReportFactory)
knowledgeRuntime.getGlobal("reportFactory");
kcontext.insertLogical(reportFactory.createMessage(
Message.Type.ERROR, kcontext.getRule().getName(),
context));
}
}
then in my drools file (copied from page 42):
i have
import org.drools.runtime.rule.RuleContext;
import function ValidationHelper.error;
...
rule test
when
#condition
then
error(drools)
but when I ran the test, I got error message:
Exception in thread "main" org.drools.runtime.rule.ConsequenceException: [Error:
unable to resolve method: ValidationHelper.error(org.drools.base.DefaultKnowledgeHelper)
[arglength=1]]
If I remove the parameter Object... context, then everything worked. But I do need the
varargs here because I need my error message to be more specific.
Did anyone else encounter the same problems?
thanks!