es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema con la importación en la última versión de Drools.

Soy nuevo en Drools y estoy tratando de comenzar a usar diferentes tutoriales. Últimamente he estado utilizando estos dos: https://koziolekweb.pl/2008/10/30/jboss-rules-drools-silnik-regul-biznesowych/ y https://www.youtube.com/watch?v=zQhDe_PT60Y, pero están utilizando una versión anterior de Drools y yo estoy usando la versión 7.62.Final. Mis errores se encuentran en estas importaciones:

import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.StatelessSession;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;

y

import org.drools.StatefulSession;

¿Han cambiado en la nueva versión de Drools? ¿Cómo puedo cambiarlos en el código, por ejemplo, al usar PackageBuilder builder = new PackageBuilder();, etc.? ¿Y dónde puedo encontrar esta información si está disponible?
Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola,

    Sí, las importaciones que mencionaste han cambiado en las versiones más recientes de Drools.

    Aquí están las importaciones actualizadas para la versión 7.62.Final:

    import org.kie.api.KieServices;
    import org.kie.api.runtime.KieContainer;
    import org.kie.api.runtime.KieSession;
    import org.kie.internal.io.ResourceFactory;
    import org.kie.api.io.ResourceType;
    import org.kie.api.builder.KieBuilderFactory;
    import org.kie.api.builder.KieFileSystem;
    import org.kie.api.builder.KieModule;
    import org.kie.api.builder.KieRepository;
    import org.kie.api.builder.ModelBuilder;
    
    

    Para cambiar el código mientras se utiliza PackageBuilder builder = new PackageBuilder();, puedes reemplazarlo por lo siguiente:

    KieServices kieServices = KieServices.Factory.get();
    KieFileSystem kfs = kieServices.newKieFileSystem();
    Resource resource = ResourceFactory.newClassPathResource("ruta/hacia/tu/archivo/drl");
    kfs.write(resource);
    KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll(); 
    KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
    KieSession kieSession = kieContainer.newKieSession();
    

    En cuanto a dónde puedes encontrar esta información, la documentación y guía de usuario de Drools son excelentes recursos para consultar. Puedes encontrarlos aquí: https://docs.jboss.org/drools/release/7.62.0.Final/drools-docs/html_single/

    Espero que esto sea de ayuda. Déjame saber si tienes alguna pregunta adicional.

Comments are closed.