2015-03-24 1 views
-2

Это ядро ​​работает, если я пытаюсь вызывать только правила из KIE Workbench .... ИТ, уволяющие правила, с которыми все работает, процесс. Когда я пытаюсь вызвать JBPM-процесс с помощью newKieSession.StartProcess («*** Process Name»); * Im получает эту ошибку. Кто-то пожалуйста, помогите ....Получение ошибки при вызове JBPM процесса с KIE workbech в локальном хосте .. Но правила, вызывающие и срабатывающие, работают нормально

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-генерироваться метод заглушки // даже без версий -snapshot

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"); 
    }*/ 

Строка UserPassword = "админ: админ";

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(); 

// Инициирование POJO, на котором вы хотите определить правила, как Сотрудника emp1 = новый сотрудник (2, "А1", 5001); //emp1.setId(1); //emp1.setName("Amba "); //emp1.setSalary (1 000);

//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"); 


    } 

    } 

* Ошибка *

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 

**** **** Фактическая ошибка Исключение в потоке "основного" java.lang.NullPointerException на org.drools.core. impl.StatefulKnowledgeSessionImpl.startProcess (StatefulKnowledge SessionImpl.java:1896) в com.sample.DroolsTest.main (DroolsTest.java:152)

+0

попробуйте [** отладить его **] (http://docs.oracle.com/middleware/1212/jdev/jdev-testdebug.htm) – xmojmr

ответ

0

кажется сеанс не га v время выполнения процесса, есть ли у вас все необходимые библиотеки jbpm в вашем пути к классам?

+0

Да, у меня есть все библиотеки jbpm ... эфир -транспорт-http-1.0.0.v20140518.jar aether-transport-wagon-1.0.0.v20140518.jar aether-util-1.0.0.v20140518.jar ant-1.8.2.jar ant-launcher -1.8.2.jar ANTLR-среда-3.5.jar aopalliance-1.0.jar КДИ-апи-1.0.jar Обще-кодек-1.4.jar Обще-ю-2.4.jar Drools-Templates- 6.2.0.Final.jar ecj-4.3.1.jar guav а-10.0.1.jar HttpClient-4.2.6.jar httpcore-4.3.3.jar javax.inject-1.jar JCL-над-SLF4J-1.6.2.jar jsoup-1.6.1. банку jsr250-апи-1.0.jar jsr305-1.3.9.jar Kie-апи-6.2.0.Final.jar Kie-CI-6.2.0.Final.jar Kie-внутреннего 6.2.0. Final.jar – JustCode

+0

kie-internal-6.2.0.Final.jar logback-classic-1.1.2.jar logback-core-1.1.2.jar maven-ether-provider-3.2.2.jar maven- artifact-3.2.2.jar maven-compat-3.2.2.jar maven-core-3.2.2.jar maven-model-3.2.2.jar maven-model-builder-3.2.2.jar maven-plugin-api-3.2.2.jar maven-repository-metadata-3.2.2.jar maven-settings-3.2.2.jar maven-settings-builder-3.2.2.jar mvel2-2.2.4.Final.jar org.eclipse.sisu.inject-0.0.0.M5.jar org.eclipse.sisu.plexus-0.0. 0.M5.jar сплетения-шифр-1.4.jar сплетение-classworlds-2.5.1.jar сплетение-компонентный-аннотаций-1.5.5.jar сплетение-интерполяционный-1.19.jar сплетение-втор-dispatcher- 1.3.jar – JustCode

+0

сплетение-Utils-3.0.17.jar пои-3.10.1.jar пои-OOXML-3.10.1.jar пои-OOXML-схем-3.10.1.jar Protobuf-Java-2.5. 0.jar sisu-guice-3.1.0-no_aop.jar slf4j-api-1.7.10.jar stax-api- 1.0.1.jar вагон-клиент-2.0.jar вагона-клиент-shared4-2.0.jar вагон-провайдер апи-1.0.jar XML-АПИС-1.0.b2.jar XMLBeans-2.6.0. jar xmlpull-1.1.3.1.jar xpp3_min-1.1.4c.jar xstream-1.4.8.jar – JustCode