Я пытался использовать API правил Java впервые и получил следующее исключение:API правил Java: [No RuleServiceProvider, зарегистрированный в URI: http://drools.org/), root cause (null)]
No RuleServiceProvider registered against URI: http://drools.org/), root cause(null)
Это исключение пришел на следующий код:
RuleServiceProvider ruleServiceProvider =
RuleServiceProviderManager.getRuleServiceProvider("http://drools.org/");
Я хочу использовать Java Правила API для ДРЛ и DSL файлов в Drools. Может ли кто-нибудь помочь?
код, который я использовал следующий: -
try {
Class.forName("org.drools.jsr94.rules.RuleServiceProviderImpl");
RuleServiceProvider ruleServiceProvider = RuleServiceProviderManager.getRuleServiceProvider("http://drools.org/");
RuleAdministrator ruleAdministrator = ruleServiceProvider.getRuleAdministrator();
LocalRuleExecutionSetProvider ruleExecutionSetProvider =
ruleAdministrator.getLocalRuleExecutionSetProvider(null);
Reader drlReader = new FileReader(new File("CustomRules.drl"));
RuleExecutionSet ruleExecutionSet = ruleExecutionSetProvider.createRuleExecutionSet(drlReader, null);
String uri = ruleExecutionSet.getName();
ruleAdministrator.registerRuleExecutionSet(uri, ruleExecutionSet, null);
RuleRuntime ruleRuntime = ruleServiceProvider.getRuleRuntime();
StatefulRuleSession session =
(StatefulRuleSession)ruleRuntime.createRuleSession(uri,
null,
RuleRuntime.STATEFUL_SESSION_TYPE);
Applicant a = new Applicant();
a.setAge(16);
a.setValid(true);
System.out.println(a.isValid());
session.addObject(a);
session.executeRules();
System.out.println(a.isValid());
} catch (Exception e) {
e.printStackTrace();
}
Plz вставьте код. – Kick
Вставил код. –
Не тратьте время на то, чтобы работать с API JSR94. Используйте API Drools. – Steve