Drools error using hibernate -
i have drools project have connect hibernate (meaning need read facts database using hibernate) when run project following error :
java.lang.arrayindexoutofboundsexception: -1 @ org.eclipse.jdt.internal.compiler.parser.parser.consumecastexpressionwithnamearray(parser.java:1984) @ org.eclipse.jdt.internal.compiler.parser.parser.consumerule(parser.java:5992) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9272) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9500) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9457) @ org.eclipse.jdt.internal.compiler.parser.parser.dietparse(parser.java:8102) @ org.eclipse.jdt.internal.compiler.compiler.internalbegintocompile(compiler.java:696) @ org.eclipse.jdt.internal.compiler.compiler.begintocompile(compiler.java:376) @ org.eclipse.jdt.internal.compiler.compiler.compile(compiler.java:420) @ org.drools.commons.jci.compilers.eclipsejavacompiler.compile(eclipsejavacompiler.java:389) @ org.drools.commons.jci.compilers.abstractjavacompiler.compile(abstractjavacompiler.java:49) @ org.drools.rule.builder.dialect.java.javadialect.compileall(javadialect.java:371) @ org.drools.compiler.dialectcompiletimeregistry.compileall(dialectcompiletimeregistry.java:46) @ org.drools.compiler.packageregistry.compileall(packageregistry.java:102) @ org.drools.compiler.packagebuilder.compileall(packagebuilder.java:1006) @ org.drools.compiler.packagebuilder.compileallrules(packagebuilder.java:842) @ org.drools.compiler.packagebuilder.addpackage(packagebuilder.java:831) @ org.drools.compiler.packagebuilder.addpackagefromdrl(packagebuilder.java:467) @ org.drools.compiler.packagebuilder.addknowledgeresource(packagebuilder.java:673) @ org.drools.builder.impl.knowledgebuilderimpl.add(knowledgebuilderimpl.java:45) @ org.drools.builder.impl.knowledgebuilderimpl.add(knowledgebuilderimpl.java:34) @ metier.testingrules.readknowledgebase(testingrules.java:61) @ metier.testingrules.main(testingrules.java:33) java.lang.arrayindexoutofboundsexception: -1 @ org.eclipse.jdt.internal.compiler.parser.parser.consumecastexpressionwithnamearray(parser.java:1984) @ org.eclipse.jdt.internal.compiler.parser.parser.consumerule(parser.java:5992) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9272) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9500) @ org.eclipse.jdt.internal.compiler.parser.parser.parse(parser.java:9457) @ org.eclipse.jdt.internal.compiler.parser.parser.dietparse(parser.java:8102) @ org.eclipse.jdt.internal.compiler.compiler.internalbegintocompile(compiler.java:696) @ org.eclipse.jdt.internal.compiler.compiler.begintocompile(compiler.java:376) @ org.eclipse.jdt.internal.compiler.compiler.compile(compiler.java:420) @ org.drools.commons.jci.compilers.eclipsejavacompiler.compile(eclipsejavacompiler.java:389) @ org.drools.commons.jci.compilers.abstractjavacompiler.compile(abstractjavacompiler.java:49) @ org.drools.rule.builder.dialect.java.javadialect.compileall(javadialect.java:371) @ org.drools.compiler.dialectcompiletimeregistry.compileall(dialectcompiletimeregistry.java:46) @ org.drools.compiler.packageregistry.compileall(packageregistry.java:102) @ org.drools.compiler.packagebuilder.compileall(packagebuilder.java:1006) @ org.drools.compiler.packagebuilder.compileallrules(packagebuilder.java:842) @ org.drools.compiler.packagebuilder.addpackage(packagebuilder.java:831) @ org.drools.compiler.packagebuilder.addpackagefromdrl(packagebuilder.java:467) @ org.drools.compiler.packagebuilder.addknowledgeresource(packagebuilder.java:673) @ org.drools.builder.impl.knowledgebuilderimpl.add(knowledgebuilderimpl.java:45) @ org.drools.builder.impl.knowledgebuilderimpl.add(knowledgebuilderimpl.java:34) @ metier.testingrules.readknowledgebase(testingrules.java:61) @ metier.testingrules.main(testingrules.java:33) mean ? tell me how can fix ? thank .drl code : package metier.environnements import metier.taches.activiteprofessionnelle; import metier.taches.utilisateur; rule "réseaux_disponibles" // donne les réseaux disponibles dans la localisation de l'utilisateur ruleflow-group "networks" when reseau : reseau (reseau.getcle == "mot") system.out.println ("réseaux disponibles"); end
as main file load knowledge base :
package metier; import java.util.iterator; import java.util.list; import metier.environnements.reseau; import org.drools.knowledgebase; import org.drools.knowledgebasefactory; import org.drools.builder.knowledgebuilder; import org.drools.builder.knowledgebuildererror; import org.drools.builder.knowledgebuildererrors; import org.drools.builder.knowledgebuilderfactory; import org.drools.builder.resourcetype; import org.drools.io.resourcefactory; import org.drools.runtime.statefulknowledgesession; import org.hibernate.query; import org.hibernate.session; import util.hibernateutil; /* sample class launch rule. */ public class testingrules { public static final void main(string[] args) { try { session session = hibernateutil.getsessionfactory().getcurrentsession(); session.begintransaction(); // load knowledge base knowledgebase kbase = readknowledgebase(); statefulknowledgesession ksession = kbase.newstatefulknowledgesession(); query query=session.createquery("from reseau"); list l =query.list(); iterator reseaux = query .iterate(); while (reseaux.hasnext()) { reseau reseau = (reseau) reseaux.next(); ksession.insert(reseau); } ksession.fireallrules(); } catch (throwable t) { t.printstacktrace(); } } private static knowledgebase readknowledgebase() throws exception { knowledgebuilder kbuilder = knowledgebuilderfactory.newknowledgebuilder(); kbuilder.add(resourcefactory.newclasspathresource("reseau.drl"), resourcetype.dslr); knowledgebuildererrors errors = kbuilder.geterrors(); if (errors.size() > 0) { (knowledgebuildererror error: errors) { system.err.println(error); } throw new illegalargumentexception("could not parse knowledge."); } knowledgebase kbase = knowledgebasefactory.newknowledgebase(); kbase.addknowledgepackages(kbuilder.getknowledgepackages()); return kbase; } }
Comments
Post a Comment