Получение «невозможно разрешить метод с использованием строгого режима: org.drools.core.spi.KnowledgeHelper.throw ()» при создании исключения для файла DRL - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь выполнить интеграцию 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]: [Имя правила = 'Обязательные поля']

Я проверил эту ссылку по этому поводу, и я действительно не могу понять, кто яИссингом.Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...