Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Getting error while calling JBPM Process from KIE workbech in Localhost.. But Rules calling and Firi

Juz2CodeMar 24 2015 — edited Mar 24 2015

This code works if i try to call the Rules alone from KIE Workbench.... ITs firing the rules everything is working with-out Process. When i try to call the JBPM Process withnewKieSession.StartProcess("***Process Name");* Im getting this error. Somebody please help....

  package com.sample;  import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Scanner;  import org.drools.compiler.kproject.ReleaseIdImpl; import org.drools.core.event.DebugAgendaEventListener; import org.drools.core.event.DebugRuleRuntimeEventListener; import org.drools.core.io.impl.UrlResource; import org.drools.core.marshalling.impl.ProtobufMessages.KnowledgeBase; import org.kie.api.KieBase; import org.kie.api.KieBaseConfiguration; import org.kie.api.KieServices; import org.kie.api.builder.KieModule; import org.kie.api.builder.KieRepository; import org.kie.api.builder.KieScanner; import org.kie.api.cdi.KSession; import org.kie.api.conf.EventProcessingOption; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieRuntime; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.KieSessionConfiguration; import org.kie.api.runtime.StatelessKieSession; import org.kie.internal.KnowledgeBaseFactory; import org.kie.internal.agent.KnowledgeAgent; import org.kie.internal.agent.KnowledgeAgentConfiguration; import org.kie.internal.agent.KnowledgeAgentFactory; import org.kie.internal.command.CommandFactory; import org.kie.internal.io.ResourceFactory; import org.kie.internal.runtime.StatefulKnowledgeSession; import com.thoughtworks.xstream.core.util.Base64Encoder;


public class DroolsTest {  public static void main(String[] args)throws IOException {

// TODO Auto-generated method stub // works even without -SNAPSHOT versions

   ReleaseIdImpl releaseId = new ReleaseIdImpl("Release ID with all the details** Version, Artifact and GroupID ");

  KieServices ks = KieServices.Factory.get();

  ks.getResources().newUrlResource(url);

KieContainer kieContainer = ks.newKieContainer(releaseId);  // check every 5 seconds if there is a new version at the URL KieScanner kieScanner = ks.newKieScanner(kieContainer);

kieScanner.start(5000L); // alternatively: // kieScanner.scanNow();

Scanner scanner = new Scanner(System.in);

while (true) { runRule(kieContainer);

System.out.println("Press enter in order to run the test again....");

scanner.nextLine();

}

}

private static void runRule(KieContainer kieKontainer) { StatelessKieSession kSession =  kieKontainer.newStatelessKieSession("testSession");

kSession.setGlobal("out", System.out);

kSession.execute("testRuleAgain"); }*/

String userpassword = "admin:admin";

String url = "http://localhost:8989/jbpm-console/maven2/com/****Project in KIE work bench";   HttpURLConnection httpURLConnection = (HttpURLConnection)new  URL(url).openConnection(); 

String authEnc = new Base64Encoder().encode(userpassword.getBytes());

httpURLConnection.setRequestProperty("Authorization", "Basic "+ authEnc);

KieServices ks = KieServices.Factory.get();

KieRepository kr = ks.getRepository();

InputStream is = httpURLConnection.getInputStream();

KieModule kModule =  kr.addKieModule(ks.getResources().newInputStreamResource(is));

KieSessionConfiguration conf= ks.newKieSessionConfiguration();

//Initiate POJO on which you want to define rule like Employee emp1 = new Employee(2,"A1",5001); //emp1.setId(1); //emp1.setName("Amba"); //emp1.setSalary(1000);

//ReleaseIdImpl releaseId = new ReleaseIdImpl("com.agileidc.primed", "Primed_Project", "1.0"); System.out.println("Test"); 

KieContainer kieContainer = ks.newKieContainer(kModule.getReleaseId());  //KieContainer kieContainer = ks.getKieClasspathContainer();

System.out.println("Test");

KieScanner kScanner = ks.newKieScanner(kieContainer); kScanner.start(10000L);   /* KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession();*/ //StatelessKieSession kSession = kieContainer.newStatelessKieSession( "TestingSession",conf);  //kSession.setGlobal("out", System.out); //kSession.execute("TestRule"); System.out.println("Before firing");

KieSession newKieSession = kieContainer.newKieSession();  //Insert into kieSession newKieSession.insert(emp1); Employee emp2 = new Employee(1,"A2",5000); //emp2.setId(1); //emp2.setName("Amba"); //emp2.setSalary(1000);  newKieSession.insert(emp2); 

emp2 = new Employee(1,"A3",5001); //emp2.setId(1); //emp2.setName("Amba"); //emp2.setSalary(1000);  newKieSession.insert(emp2); 

int result = newKieSession.fireAllRules();

newKieSession.startProcess("Process1"); 

System.out.println("Result => "+result+"Number of rules fired="+result+"newKieSession.getFactCount()===>"+newKieSession.getFactCount());

newKieSession.dispose(); System.out.println("Finish");

  }

}

*Error is *

  Before firing 18:47:42.009 [main] WARN o.d.c.k.b.impl.AbstractKieModule - No files found for KieBase defaultKieBase 18:47:42.118 [main] DEBUG o.drools.core.impl.KnowledgeBaseImpl -  Starting Engine in PHREAK mode

****Actual Error****

Exception in thread "main" java.lang.NullPointerException at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledge SessionImpl.java:1896) at com.sample.DroolsTest.main(DroolsTest.java:152)

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 21 2015
Added on Mar 24 2015
0 comments
546 views