1) The only difference appears to be the use of presumably a global. Do
define this in your DRL and set its value before invoking fireAllRules?
2) The error messages states "txn cannot be resolved to a type" however
"txn" does not appear in your pasted rule. Is something missing?
2011/3/26 Wolfgang Laun <wolfgang.laun(a)gmail.com>
If there is a package header on a DRL file it defines a package the
same
way it does for a Java source file. Also, visibility of classes works the
same way: if a class is in the same package as the DRL, you don't have to
import it; otherwise you have to.
-W
2011/3/26 saurabh maheshwari <maheshwari.saurabh03(a)gmail.com>
> Hi sir ,
>
> I am facing one issue regarding dyamic class cretion and inserting it's
> object into drools memory.
>
> i have created a dyanmic class test and loads it like that
>
> MyClassLoader clr =new
> MyClassLoader(Obj.getClass().getClassLoader());
> Obj.clazz= clr.loadClass("test");
>
> //Drools Configuration
>
> KnowledgeBuilderConfiguration kbc =
>
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,clazz.getClassLoader());
> KnowledgeBuilder kbuilder =
> KnowledgeBuilderFactory.newKnowledgeBuilder(kbc);
> String path = System.getProperty("user.dir");
> StringBuilder drlFile = new StringBuilder(path);
>
>
drlFile.append(System.getProperty("file.separator")).append("myRule.drl");
>
> kbuilder.add(ResourceFactory.newFileResource(drlFile.toString()),
> ResourceType.DRL);
> if (kbuilder.hasErrors())
> {
> System.out.println(kbuilder.getErrors());
> return;
> }
>
> KnowledgeBaseConfiguration kbaseConfig
> =KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null,
> clazz.getClassLoader());
> kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);
> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
> ksession = kbase.newStatefulKnowledgeSession();
>
>
> Now my drl file is like that
>
>
> package dyanmicclass;
>
> dialect "java"
> rule mytest1
> when
> $tx : test($pp : name )
> then
> globalArrayList.add($tx);
> System.out.println($tx );
> end
>
>
> this is giving me a error
> KnowledgeBuilder created.
> Unable to generate rule invoker. : [Rule name='mytest1']
> dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:886)
> : test cannot be resolved to a type
> dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:898)
> : test cannot be resolved to a type
> Rule Compilation error : [Rule name='mytest1']
> dyanmicclass/Rule_mytest1_0.java (6:214) : txn cannot be resolved
> to a type
>
>
> but while i am doing like that
>
> dialect "java"
> rule mytest1
> when
> $tx : test($pp : name )
> then
> System.out.println($pp );
> end
>
> it gives no error .
>
> I am not able to find the cause of the problem .
> am i wrong in any configuaration.
>
> Thanks
> Saurabh
>
>
>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users