Интеграция Drools с JHipster - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь решить проблему с JHipster и Drools. При попытке отладить его, у меня есть слюни, работающие в простом Java-проекте, а также в отдельном проекте с Spring. Но сейчас я пытаюсь заставить его работать в JHipster (новый сгенерированный проект). Но я не знаю, почему регистрация не работает

  • Я изменил ссылки
  • .drl файл распознается
  • Распознан ошибочный код в файле .drl
  • В консоли нет ошибок
  • Правило ничего не регистрирует
  • Правило не будет изменять объекты.

У кого-нибудь есть предложения о том, где искать проблему?

SRC / главная / Java / com.company.ssa / сервис / ProcessingService.java

package com.company.ssa.service;

import org.kie.api.KieServices;
import org.kie.api.logger.KieRuntimeLogger;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class ProcessingService {

private final Logger log = LoggerFactory.getLogger(ProcessingService.class);

public String testFunctionOne() {
    log.info("started TestFunctionOne");

    KieServices ks = KieServices.Factory.get();
    KieContainer kContainer = ks.getKieClasspathContainer();
    KieSession kSession = kContainer.newKieSession("ksession-rules");

    Message message = new Message();
    message.setMessage("Hello Drools");
    message.setStatus(Message.HELLO);

    log.info("before fire: " + message.getMessage());
    log.info("before fire: " + message.getStatus());

    kSession.insert(message);
    kSession.fireAllRules();

    log.info("after fire: " + message.getMessage());
    log.info("after fire: " + message.getStatus());



    log.info("ended TestFunctionOne");
    return "hello world2";
}

public static class Message {

    public static final int HELLO = 0;
    public static final int GOODBYE = 1;

    private String message;

    private int status;

    public String getMessage() {
        return this.message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public int getStatus() {
        return this.status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

}

}

SRC / основные / ресурсы / META-INF / kmodule.xml

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
    <kbase name="rules" packages="rules">
        <ksession name="ksession-rules"/>
    </kbase>
    <kbase name="dtables" packages="dtables">
        <ksession name="ksession-dtables"/>
    </kbase>
    <kbase name="process" packages="process">
        <ksession name="ksession-process"/>
    </kbase>
</kmodule>

SRC / основные / ресурсы / META-INF / Maven / pom.properties

groupId=com.budderfly
artifactId=jhipsterrules
version=1.0.0-SNAPSHOT

SRC / главная / ресурсы / правила / rule1.drl

package com.company

import com.company.ssa.service.ProcessingService.Message;

rule "Hello World"
    when
        m : Message( status == Message.HELLO, myMessage : message )
    then
        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( myMessage );
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...