Srinath Murugula
Srinath Murugula

Reputation: 582

org.drools.RuntimeDroolsException: invalid package name

I am a new bie to JBPM.

I have created bpmn file with a start ,diverge and two scripts and a converge and endtask.

MY code is

package com.sample;

import java.util.HashMap;
import java.util.Map;

import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.ProcessInstance;


 public class ProcessTest {

public static void main(String[] args){

    KnowledgeBuilder kbuilder =      KnowledgeBuilderFactory.newKnowledgeBuilder();

    kbuilder.add( ResourceFactory.newClassPathResource("sample.bpmn"),

                  ResourceType.BPMN2 );
    KnowledgeBase kbase = kbuilder.newKnowledgeBase();

    StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

    Map<String,Object> params=new HashMap<String,Object>();

    params.put("income", 1200);


    ProcessInstance processInstance = ksession.startProcess("com.sample.bpmn.hello",params);
}

}

But i am getting the following error

org.drools.RuntimeDroolsException: invalid package name
at org.jbpm.compiler.ProcessBuilderImpl.buildProcess(ProcessBuilderImpl.java:175)
at org.jbpm.compiler.ProcessBuilderImpl.addProcessFromXml(ProcessBuilderImpl.java:254)
at org.drools.compiler.PackageBuilder.addProcessFromXml(PackageBuilder.java:564)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:608)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:37)
at com.sample.ProcessTest.main(ProcessTest.java:23)
  [6,13]: [ERR 102] Line 6:13 mismatched input 'income' in rule "RuleFlow-    Split-com.sample.bpmn.hello-2-3-DROOLS_DEFAULT"
  [13,13]: [ERR 102] Line 13:13 mismatched input 'income' in rule "RuleFlow-  Split-com.sample.bpmn.hello-2-4-DROOLS_DEFAULT"
  [0,0]: Parser returned a null Package
ProcessLoadError: unable to parse xml : Exception class    org.drools.RuntimeDroolsException : invalid package name
Exception in thread "main" java.lang.IllegalArgumentException: Could not    parse knowledge.
    at    org.drools.builder.impl.KnowledgeBuilderImpl.newKnowledgeBase(KnowledgeBuilde    rImpl.java:67)
  at com.sample.ProcessTest.main(ProcessTest.java:26)

I have given package name com.sample in sample.bpmn

My sample.bpmn file is

sample.bpmn

Upvotes: 1

Views: 1397

Answers (1)

Manoj Kumar
Manoj Kumar

Reputation: 11

Found the solution for this issue. This is related to config change in the Diverge gateway Constraints. For each constraint, try using **Type: code and Dialect: java. Also do not forget to put semicolon ; at the end of the statement in the Textual editor of each constraint. Best way to check this is to open the RF file in a text editor and validate the content.

Something like:

<constraints>
  <constraint toNodeId="3" toType="DROOLS_DEFAULT" name="Flight" priority="1" type="code" dialect="java" >return income &gt; 1000;</constraint>
  <constraint toNodeId="4" toType="DROOLS_DEFAULT" name="Train" priority="1" type="code" dialect="java" >return income &lt; 1000;</constraint>
</constraints>

Hope this will help.

Upvotes: 1

Related Questions