[rules-users] Drools 601 kmodule problem when running the drools project in eclipse kepler ide

Mauricio Salatino salaboy at gmail.com
Sun May 25 10:40:10 EDT 2014


Check the example here:
https://github.com/droolsjbpm/drools/tree/master/drools-examples-cdi/cdi-example

Follow that structure


On Sun, May 25, 2014 at 3:29 PM, Natalia Iglesias de Amunategui <
natalia.iglesias at casadearriba.net> wrote:

> Hello,
>
> I had already tried  something like that by changing  the packages field
> in the kmodule file into *packages=”rules”* as this is the directory
> where the VAP.drl file resides. But I still get a *null pointer exception*when executing the *container
> verify*, although I do not see a warning anymore:
>
>
>
>
>
> The error comes from the line 36 (container verify):
>
>
>
> System.*out*.println(kContainer.verify().getMessages().toString());
>
>
>
>
>
> I am running out of ideas, I also thought that it maybe has something to
> do with maven as I have read that drools 601 expects a maven structure, so
> I definitely needs a pom.properties. I have a pom.properties but is has no
> content, only this:
>
>
>
> version=${project.version}
>
> groupId=${project.groupId}
>
> artifactId=${project.artifactId}
>
>
>
> Thanks!
>
>
>
> *De:* rules-users-bounces at lists.jboss.org [mailto:
> rules-users-bounces at lists.jboss.org] *En nombre de *Mauricio Salatino
> *Enviado el:* domingo, 25 de mayo de 2014 16:18
> *Para:* Rules Users List
> *Asunto:* Re: [rules-users] Drools 601 kmodule problem when running the
> drools project in eclipse kepler ide
>
>
>
> Try creating a directory called: *InfectionRules inside the
> src/main/resources/*
>
> *and then put the rules inside there.*
>
>
>
> On Sun, May 25, 2014 at 3:04 PM, Natalia Iglesias de Amunategui <
> natalia.iglesias at casadearriba.net> wrote:
>
> Hello,
>
>
>
> I am currently working on a Drools project using eclipse kepler and the
> drools plug-in from drools 601.
>
>
>
> I have a main java class that contains POJO classes representing facts and
> the initialization of the kie container and session. When executing the
> command System.*out*
> .println(kContainer.verify().getMessages().toString()); I get the
> following messages:(note the warning “No files found for KieBase
> InfectionRules, searching folder…”)
>
>
>
> [main] INFO org.drools.compiler.kie.builder.impl.ClasspathKieProject -
> Found kmodule:
> file:/C:/TFM/Infections/Workspace/InfectionRules/VAP/target/META-INF/kmodule.xml
>
>
>
> [main] INFO org.drools.compiler.kie.builder.impl.KieRepositoryImpl -
> KieModule was added:FileKieModule[
> ReleaseId=${project.groupId}:${project.artifactId}:${project.version}file=\TFM\Infections\Workspace\InfectionRules\VAP\target]
>
>
>
> [main] INFO org.drools.compiler.kie.builder.impl.ClasspathKieProject -
> Found kmodule:
> file:/C:/TFM/Infections/Workspace/InfectionRules/VAP/target/META-INF/kmodule.xml
>
>
>
> [main] INFO org.drools.compiler.kie.builder.impl.KieRepositoryImpl -
> KieModule was added:FileKieModule[
> ReleaseId=${project.groupId}:${project.artifactId}:${project.version}file=\TFM\Infections\Workspace\InfectionRules\VAP\target]
>
>
>
> [main] WARN org.drools.compiler.kie.builder.impl.AbstractKieModule - *No
> files found for KieBase InfectionRules, searching folder
> \TFM\Infections\Workspace\InfectionRules\VAP\target*
>
> []
>
> *java.lang.NullPointerException*
>
>        at InfectionRules.VAPDroolsTest.main(*VAPDroolsTest.java:62*)
>
>
>
> The kie initialization module has the following code:
>
>
>
> *package* InfectionRules;
>
>
>
> *import* java.util.*;
>
> *import* java.util.concurrent.TimeUnit;
>
> *import* java.text.DateFormat;
>
> *import* java.text.SimpleDateFormat;
>
>
>
> *import* org.drools.core.time.*;
>
> *import* *org.kie.internal*.*;
>
>
>
>
>
> *import* org.kie.api.conf.EventProcessingOption;
>
> *import* *org.kie.api.runtime.KieRuntime*;
>
> *import* org.kie.api.KieBaseConfiguration;
>
> *import* org.kie.api.KieServices;
>
> *import* org.kie.api.runtime.KieContainer;
>
> *import* org.kie.api.runtime.KieSession;
>
> *import* org.kie.api.runtime.KieSessionConfiguration;
>
> *import* org.kie.api.runtime.conf.ClockTypeOption;
>
> *import* org.kie.api.runtime.rule.EntryPoint;
>
> *import* org.kie.api.runtime.rule.FactHandle;
>
> *import* *org.kie.api.time.SessionClock*;
>
>
>
>
>
> *public* *static* *void* main(*final* String[] args) {
>
>         *try* {
>
>
>
>
>
>             // load up the knowledge base
>
>               KieServices ks = KieServices.Factory.*get*();
>
>               KieContainer kContainer = ks.getKieClasspathContainer();
>
>               System.*out*
> .println(kContainer.verify().getMessages().toString());
>
>              KieSession kSession = kContainer.newKieSession("VAPSession");
>
>
>
>              // set clock to pseudo clock to be able to advance it
> manually
>
>              KieSessionConfiguration ksconf = KieServices.Factory.*get*
> ().newKieSessionConfiguration();
>
>              ksconf.setOption(ClockTypeOption.*get*("pseudo"));
>
>
>
>              *SessionPseudoClock* clock = kSession.getSessionClock();
>
>
>
>              // set stream mode as opposite to cloud mode
>
>              KieBaseConfiguration config = KieServices.Factory.*get*
> ().newKieBaseConfiguration();
>
>              config.setOption(EventProcessingOption.*STREAM* );
>
>
>
>              // Insert test patients and related classes
>
>              // *mr* *Jones* has no VAP, so the *cpi* score is less than 6
>
>              *final* Patient p1 = *new* Patient( "MrJones", 45, 1, *false*
> ,*false*,*true*,37.0,
>
>              5000,"None","No Infiltrate","None","No Growth","S.Aureus"
> ,235,*true*, *false*, 0,
>
>              *true*,*new* SimpleDateFormat("yyyy-MM-dd").parse(
> "2014-05-17"),"",
>
>              *new* SimpleDateFormat("yyyy-MM-dd").parse("2014-05-17"),
> *false*,*false*,*false*,*false*);
>
>
>
>               kSession.insert( p1 );
>
>
>
>              // get a reference to the entry point and insert events
>
>              EntryPoint nursingStream = kSession.getEntryPoint(
> "NursingStream" );
>
>
>
> *             final* CPIScore cpiScore1 = *new* CPIScore( p1,"initial",7);
>
>              nursingStream.insert( cpiScore1 );
>
>
>
>              *clock..advanceTime( 75, TimeUnit.**HOURS** )*;
>
>              *final* CPIScore cpiScore2 = *new* CPIScore( p1,"3days",7 );
>
>              nursingStream...insert( cpiScore2 );
>
>
>
> I am running this class directly from the Eclipse Run menu option. I have
> installed maven but I’m not using it (yet)
>
>
>
> The kmodule.xml file has the following format:
>
>
>
> <?xml version=*"1.0"* encoding=*"UTF-8"*?>
>
> <kmodule xmlns:xsi=*"http://www.w3.org/2001/XMLSchema-instance
> <http://www.w3.org/2001/XMLSchema-instance>"*
>
>               xmlns=*"http://jboss.org/kie/6.0.0/kmodule
> <http://jboss.org/kie/6.0.0/kmodule>"*>
>
>     <kbase name=*"InfectionRules"* eventProcessingMode=*"stream"*
> packages=*"InfectionRules"*>
>
>         <ksession name=*"VAPSession"* type=*"stateful"* clockType=
> *"pseudo"* />
>
>     </kbase>
>
> </kmodule>
>
>
>
> (I have tried to change the packages field of kmodule to *, but it does
> not work either.)
>
>
>
> And the directory structure where both the java and drl code reside is:
>
>
>
> C:\TFM\Infections\Workspace\InfectionRules\VAP\src\main
>
> Subdirectory java contains the java classes and resources the drl file.
>
> The target directory is located under ..\VAP\target\ with the following
> structure:
>
>
>
>
>
> From Eclipse IDE this is the project structure
>
>
>
>
>
> Any idea as to what I’m doing wrong? I don´t know why the kmodule does not
> locate the kbase in the directory *\TFM\Infections\Workspace\InfectionRules\VAP\target
> *as this directory contains the drl file vap.drl in the rules
> subdirectory. Although I get later a null pointer exception, I guess that
> it has to do with this warning, as if there is no kbase located no session
> can be used.
>
>
>
> Thanks in advance!
>
>
>
> Best regards
>
> Natalia
>
>
>
>
>
>
>
>
> ------------------------------
>
>  <http://www.avast.com/>
>
> Este mensaje no contiene virus ni malware porque la protección de avast!
> Antivirus <http://www.avast.com/> está activa.
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
> --
>
>  - MyJourney @ http://salaboy.com <http://salaboy.wordpress.com>
>
>  - Co-Founder @ http://www.jugargentina.org
>  - Co-Founder @ http://www.jbug.com.ar
>
>  - Salatino "Salaboy" Mauricio -
>
>
> ------------------------------
>    <http://www.avast.com/>
>
> Este mensaje no contiene virus ni malware porque la protección de avast!
> Antivirus <http://www.avast.com/> está activa.
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
 - MyJourney @ http://salaboy.com <http://salaboy.wordpress.com>
 - Co-Founder @ http://www.jugargentina.org
 - Co-Founder @ http://www.jbug.com.ar

 - Salatino "Salaboy" Mauricio -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140525/249c8601/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.png
Type: image/png
Size: 10458 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140525/249c8601/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.jpg
Type: image/jpeg
Size: 56322 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140525/249c8601/attachment-0001.jpg 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.png
Type: image/png
Size: 1833 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140525/249c8601/attachment-0003.png 


More information about the rules-users mailing list