Hi sir ,<br><br>I am facing one issue regarding dyamic class cretion and inserting it's object into drools memory.<br><br> i have created a dyanmic class test and loads it like that <br><br> MyClassLoader clr =new MyClassLoader(Obj.getClass().getClassLoader());<br>
Obj.clazz= clr.loadClass("test");<br><br>//Drools Configuration<br><br> KnowledgeBuilderConfiguration kbc = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,clazz.getClassLoader());<br>
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbc);<br> String path = System.getProperty("user.dir");<br> StringBuilder drlFile = new StringBuilder(path);<br>
drlFile.append(System.getProperty("file.separator")).append("myRule.drl");<br> kbuilder.add(ResourceFactory.newFileResource(drlFile.toString()), ResourceType.DRL);<br> if (kbuilder.hasErrors())<br>
{<br> System.out.println(kbuilder.getErrors());<br> return;<br> }<br><br> KnowledgeBaseConfiguration kbaseConfig =KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null, clazz.getClassLoader());<br>
kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);<br> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br> ksession = kbase.newStatefulKnowledgeSession();<br><br>
<br>Now my drl file is like that <br><br><br>package dyanmicclass;<br><br>dialect "java"<br>rule mytest1<br> when <br> $tx : test($pp : name )<br> then<br> globalArrayList.add($tx);<br> System.out.println($tx );<br>
end<br><br><br>this is giving me a error <br>KnowledgeBuilder created.<br>Unable to generate rule invoker. : [Rule name='mytest1']<br> dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:886) : test cannot be resolved to a type<br>
dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:898) : test cannot be resolved to a type<br>Rule Compilation error : [Rule name='mytest1']<br> dyanmicclass/Rule_mytest1_0.java (6:214) : txn cannot be resolved to a type<br>
<br><br>but while i am doing like that <br><br>dialect "java"<br>rule mytest1<br> when <br> $tx : test($pp : name )<br> then<br> System.out.println($pp );<br>end<br><br>it gives no error .<br><br>
I am not able to find the cause of the problem .<br>am i wrong in any configuaration.<br><br>Thanks <br>Saurabh<br><br><br><br><br><br><br>