What do you mean by "NoSuchMethod error is thrown" ?  Could you provide
the full stack trace?  In theory, you should simply be able to call any
other process, whether it is in the same package or not.

Kris

Quoting "nesta.fdb" <[email protected]>:

> Drools version: 5.0.1
> I defined two flows, one is main flow and the other is sub flow.
> These two flows have same package name, and are built and added into
> one knowledge base.
> When I start the main flow process, the NoSuchMethod error is thrown
> out.
> 
> I also test with two unrelated flows, and I can't get correct result.
> 
> 
> So my question is that whether there is the constraint which two
> flows must not have same package name?
> 
> main.rf
> <?xml version="1.0" encoding="UTF-8"?> 
> <process xmlns="http://drools.org/drools-5.0/process";
>          xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";
>          xs:schemaLocation="http://drools.org/drools-5.0/process
> drools-processes-5.0.xsd"
>          type="RuleFlow" name="flow" id="process_plan"
> package-name="sample" version="" >
> 
>   <header>
>     <variables>
>       <variable name="v1" >
>         <type
> name="org.drools.process.core.datatype.impl.type.BooleanDataType" />
>         <value>false</value>
>       </variable>
>     </variables>
>   </header>
> 
>   <nodes>
>     <start id="1" name="Start" x="195" y="15" width="30" height="30"
> />
>     <split id="2" name="Split" x="185" y="70" width="40" height="40"
> type="2" >
>       <constraints>
>         <constraint toNodeId="10" toType="DROOLS_DEFAULT" name="a"
> priority="1" type="code" dialect="java" >return v1;</constraint>
>         <constraint toNodeId="11" toType="DROOLS_DEFAULT" name="b"
> priority="1" type="code" dialect="java" >return !v1;</constraint>
>       </constraints>
>     </split>
>     <join id="5" name="Join" x="185" y="260" width="40" height="40"
> type="2" />
>     <actionNode id="7" name="test" x="155" y="320" width="100"
> height="80" >
>         <action type="expression" dialect="java"
> >System.out.println("Action Test");</action>
>     </actionNode>
>     <end id="8" name="End" x="191" y="436" width="28" height="28" />
>     <subProcess id="9" name="SubProcess" x="312" y="292" width="96"
> height="76" processId="com.sample.subflow" independent="false" >
>     </subProcess>
>     <actionNode id="10" name="a" x="75" y="151" width="80"
> height="40" >
>         <action type="expression" dialect="java"
> >System.out.println("a");</action>
>     </actionNode>
>     <actionNode id="11" name="b" x="287" y="153" width="80"
> height="40" >
>         <action type="expression" dialect="java"
> >System.out.println("b");</action>
>     </actionNode>
>   </nodes>
> 
>   <connections>
>     <connection from="1" to="2" />
>     <connection from="10" to="5" />
>     <connection from="11" to="5" />
>     <connection from="9" to="7" />
>     <connection from="7" to="8" />
>     <connection from="5" to="9" />
>     <connection from="2" to="10" />
>     <connection from="2" to="11" />
>   </connections>
> 
> </process>
> 
> sub.rf
> <?xml version="1.0" encoding="UTF-8"?> 
> <process xmlns="http://drools.org/drools-5.0/process";
>          xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";
>          xs:schemaLocation="http://drools.org/drools-5.0/process
> drools-processes-5.0.xsd"
>          type="RuleFlow" name="subflow" id="com.sample.subflow"
> package-name="sample" version="" >
> 
>   <header>
>   </header>
> 
>   <nodes>
>     <start id="1" name="Start" x="29" y="76" width="30" height="30"
> />
>     <actionNode id="2" name="Action" x="134" y="51" width="100"
> height="80" >
>         <action type="expression" dialect="java"
> >System.out.println("This is test subflow");</action>
>     </actionNode>
>     <end id="3" name="End" x="309" y="77" width="28" height="28" />
>     <actionNode id="4" name="Action" x="240" y="210" width="100"
> height="80" >
>         <action type="expression" dialect="java"
> >System.out.println("This is test 2222");</action>
>     </actionNode>
>   </nodes>
> 
>   <connections>
>     <connection from="1" to="2" />
>     <connection from="4" to="3" />
>     <connection from="2" to="4" />
>   </connections>
> 
> </process>
> 
> Test codes:
> public class XiaYuSubflowTest {
>     
>     public static void main(String[] args) {
>         KnowledgeBuilder builder =
> KnowledgeBuilderFactory.newKnowledgeBuilder();
>         builder.add(ResourceFactory.newClassPathResource("main.rf"),
> ResourceType.DRF);
>         builder.add(ResourceFactory.newClassPathResource("sub.rf"),
> ResourceType.DRF);
>         if (builder.hasErrors()) {
>             System.out.println(builder.getErrors());
>         }
>         KnowledgeBase kbase =
> KnowledgeBaseFactory.newKnowledgeBase();
>         kbase.addKnowledgePackages(builder.getKnowledgePackages());
>         StatefulKnowledgeSession sks =
> kbase.newStatefulKnowledgeSession();        
>         sks.startProcess("process_plan");    
>         sks.dispose();        
>     }
> }
> 




Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to