Я пытаюсь выполнить интеграцию drools с Spring Boot и хотел бы выдать исключение, если свойство модели не удовлетворено.
Для этого случая у меня есть модель клиента, и я хотел бы проверить ееПоле lastName имеет значение NULL - если так, то выдается исключение.
Тем не менее, я получаю «не удается разрешить метод с использованием строгого режима: org.drools.core.spi.KnowledgeHelper.throw ()» во время компиляции.Как правильно это попробовать?
Я пытался использовать global для обновления поля, и это работает, однако для удобства я просто хотел бы вызвать исключение с сообщением.
Ниже приведен мой конфигурационный файл:
@Configuration
public class CreateClientRuleEngineConfig {
public static final String bhfCreateClientRule = "CreateClientRule.drl";
@Bean
public KieContainer kieContainer() {
KieServices kieServices = KieServices.Factory.get();
KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieFileSystem.write(ResourceFactory.newClassPathResource(bhfCreateClientRule));
KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
kieBuilder.buildAll();
KieModule kieModule = kieBuilder.getKieModule();
return kieServices.newKieContainer(kieModule.getReleaseId());
}
}
======================================== Ниже приведен мой файл DRL:
import com.test.rulengine.entity.Client;
import com.test.rulengine.exception.CreateClientException;
dialect "mvel"
rule "Required fields"
when
clientInstance: Client( lastName == null);
then
throw new CreateClientException("LastName is required");
end
========================================
Ниже представлена моя зависимость от Maven (примечание: я не включал другие зависимости, не относящиеся к Drools / Kie):
<properties>
<java.version>1.8</java.version>
<drools-version>7.0.0.Final</drools-version>
<kie-version>7.0.0.Final</kie-version>
</properties>
<dependencies>
<!-- Drools/Kie dependencies -->
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>${drools-version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>${kie-version}</version>
</dependency>
================================================
Вотошибка во время компиляции:
Невозможно проанализировать выражение, сгенерировать новое CreateClientException («LastName требуется») ;: [Ошибка: невозможно разрешить метод с использованием строгого режима: org.drools.core.spi.KnowledgeHelper.throw ()] [Рядом: {... throw new CreateClientExceptio ....}] ^ [Строка: 6, столбец: 0]: [Имя правила = 'Обязательные поля']
Я проверил эту ссылку по этому поводу, и я действительно не могу понять, кто яИссингом.Заранее спасибо