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

Natalia Iglesias de Amunategui natalia.iglesias at casadearriba.net
Sun May 25 10:04:43 EDT 2014


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=\T
FM\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=\T
FM\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" 

              xmlns="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

 

 

 



---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140525/309c2dd5/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 10458 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140525/309c2dd5/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1833 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140525/309c2dd5/attachment-0003.png 


More information about the rules-users mailing list