Would it be possible to submit a small self contains test, as a pull request. Here a detailed "how to" to get you started. http://docs.jboss.org/drools/release/5.4.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html
Thanks Mark On 25 Oct 2012, at 12:09, Willem van Asperen <[email protected]> wrote: > Hi All, > > I have taken the liberty to log this in Jira at > https://issues.jboss.org/browse/JBRULES-3670 > > Regards, > Willem > > On 10/25/2012 12:44 PM, Willem van Asperen wrote: >> Hi All, >> >> The difference between failing or not stems from using insert() and >> retract() versus insertLogical(). The first two make the package fail to >> load, the latter seems to work fine. >> >> I can create a package that *does* load, by adding a cast to the full >> class name in the rule: >> >> rule "clean up possible slot lock, when no longer to schedule" >> when >> $p : PossibleSlotLock( $ship; ) >> not ToScheduleLock( mover == $ship ) >> then >> retract( (vcm.planner.lock.standard.PossibleSlotLock)$p ); >> end >> >> and by stating the full class name in the inserts, like so: >> >> insert(new vcm.planner.lock.standard.PossibleSlotLock($ship, $chamber, >> $side, $schedule, $eta, $schedule.getTick(), "existing")); >> >> This way the loading works fine. >> >> So this is less about loading compiled files and more about class >> loading for insert() and retract(). >> >> Hope this helps! >> >> I have also managed to reproduce this in a simple case. jar attached. >> Notice that when I change rule "now use it B" to have RHS "insert( new >> Person( $christianName, null ) );" the loading works. I can imagine the >> compiler / loader just assumes that a class with constructor Person( >> String, ExternalClass ) may become available at run time? >> >> Regards, >> Willem >> >> On 10/25/2012 11:32 AM, Willem van Asperen wrote: >>> Hi All, >>> >>> To add to this, I've done some further testing. >>> >>> It seems that the particular order in which each of the compiled >>> packages is loaded does not matter. >>> Not all packages that declare local classes fail... I have now found the >>> two that do. I cannot see any striking differences between the ones that >>> do and do not fail... >>> >>> What I did find is that removing all the rules from the failing packages >>> (so only leaving the imports and declare) seems to remove this issue! >>> >>> I'll dig 'round some more. >>> >>> Regards, >>> Willem >>> >>> On 10/25/2012 01:45 AM, Wolfgang Laun wrote: >>>> Folks, >>>> it seems that something new in 5.5.0.CR1 sabotages the ingestion of >>>> compiled packages. >>>> -W >>>> >>>> ---------- Forwarded message ---------- >>>> From: Willem van Asperen <[email protected]> >>>> Date: Thu, 25 Oct 2012 00:04:32 +0200 >>>> Subject: Re: [rules-users] ClassNotFound on class defined in drl with >>>> 5.5.0.CR1 >>>> To: Wolfgang Laun <[email protected]>, Rules Users List >>>> <[email protected]> >>>> >>>> Hi, >>>> >>>> This was a good idea. Here is my test case: >>>> >>>> public class TestCompilation { >>>> >>>> private final static FileFilter RULES_FILES_FILTER = new >>>> FileFilter() { >>>> @Override >>>> public boolean accept(File pathname) { >>>> return pathname.getName().endsWith(".drl"); >>>> } >>>> }; >>>> >>>> private void testCompilation() throws FileNotFoundException, >>>> IOException { >>>> KnowledgeBuilderConfiguration configuration = >>>> KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); >>>> KnowledgeBuilder kbuilder = >>>> KnowledgeBuilderFactory.newKnowledgeBuilder(configuration); >>>> >>>> File folder = new File("src/main/rules/"); >>>> for (File file : folder.listFiles(RULES_FILES_FILTER)) { >>>> System.out.println("compiling "+file.getAbsolutePath()); >>>> kbuilder.add(ResourceFactory.newFileResource(file.getAbsolutePath()), >>>> ResourceType.DRL); >>>> } >>>> >>>> System.out.println("saving"); >>>> ObjectOutputStream out = new ObjectOutputStream(new >>>> FileOutputStream("test.drl.compiled")); >>>> out.writeObject( kbuilder.getKnowledgePackages()); >>>> out.close(); >>>> } >>>> >>>> private KnowledgeBase testLoad() throws FileNotFoundException, >>>> IOException, ClassNotFoundException { >>>> Properties configProperties = new Properties(); >>>> KnowledgeBaseConfiguration knowledgeBaseConfiguration = >>>> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(configProperties); >>>> KnowledgeBase kbase = >>>> KnowledgeBaseFactory.newKnowledgeBase(knowledgeBaseConfiguration); >>>> >>>> ObjectInputStream in = new ObjectInputStream(new >>>> FileInputStream("test.drl.compiled")); >>>> >>>> System.out.println("loading"); >>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>) in.readObject()); >>>> return kbase; >>>> } >>>> >>>> public static void main(String[] args) throws >>>> FileNotFoundException, IOException, ClassNotFoundException { >>>> TestCompilation testCompilation = new TestCompilation(); >>>> testCompilation.testCompilation(); >>>> testCompilation.testLoad(); >>>> } >>>> } >>>> >>>> The folder src/main/rules consists of a number of .drl files. >>>> Compiling works fine. >>>> This is the output: >>>> >>>> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". >>>> SLF4J: Defaulting to no-operation (NOP) logger implementation >>>> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for >>>> further details. >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/planner-lock.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/executable-action-selection.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/block-times-3.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/planner-bridge.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/routeplan.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/shift-management-brabant.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/plan-first-object-in-route.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/operator-lock.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/block-times-route-call.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/shift-management.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/planner-process-data.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/plan-last-moment.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/operator-bridge.drl >>>> compiling >>>> /home/willem/development/workspace/VCM/src/main/rules/operator-management.drl >>>> saving >>>> loading >>>> Exception in thread "main" java.lang.ClassNotFoundException: >>>> vcm.planner.lock.standard.PossibleSlotLock >>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:366) >>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:355) >>>> at java.security.AccessController.doPrivileged(Native Method) >>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:354) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:423) >>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>>> at java.lang.Class.forName0(Native Method) >>>> at java.lang.Class.forName(Class.java:264) >>>> at >>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85) >>>> at >>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97) >>>> at >>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593) >>>> at >>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) >>>> at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at >>>> org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at java.util.ArrayList.readObject(ArrayList.java:733) >>>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>> at >>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>> at >>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at >>>> org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at org.drools.rule.Rule.readExternal(Rule.java:207) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at >>>> org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at java.util.HashMap.readObject(HashMap.java:1155) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>> at >>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>> at >>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at >>>> org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at org.drools.rule.Package.readExternal(Package.java:208) >>>> at >>>> org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157) >>>> at >>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at java.util.ArrayList.readObject(ArrayList.java:733) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>> at >>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>> at >>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> at >>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> at >>>> com.paconsulting.pase.test.TestCompilation.testLoad(TestCompilation.java:57) >>>> at >>>> com.paconsulting.pase.test.TestCompilation.main(TestCompilation.java:64) >>>> >>>> The class PossibleSlotLock is just a locally declared fact class. It is >>>> only being used in that particular .drl file. Every .drl file has it's >>>> own package name. >>>> >>>> The head of the .drl file: >>>> >>>> package vcm.planner.lock.standard; >>>> >>>> import java.util.Set; >>>> >>>> import com.paconsulting.pase.core.schedule.CurrentTime; >>>> import com.paconsulting.pase.core.duration.FixedDuration; >>>> import com.paconsulting.pase.transport.agents.ScheduleManagingContainer; >>>> import com.paconsulting.pase.transport.agents.movers.Ship; >>>> import com.paconsulting.pase.transport.agents.water.Lock; >>>> import com.paconsulting.pase.transport.agents.water.LockChamber; >>>> import com.paconsulting.pase.transport.agents.base.WaterLevel; >>>> import com.paconsulting.pase.transport.components.action.ActionFactory; >>>> import com.paconsulting.pase.transport.actions.IAction; >>>> import com.paconsulting.pase.transport.components.action.IActionable; >>>> import com.paconsulting.pase.transport.actions.NonTransactionAction; >>>> import com.paconsulting.pase.transport.actions.ExecutableAction; >>>> import com.paconsulting.pase.transport.components.containing.IContainer; >>>> import >>>> com.paconsulting.pase.transport.components.containing.IContainer.UpDown; >>>> import com.paconsulting.pase.transport.components.moving.IMover; >>>> import com.paconsulting.pase.transport.components.moving.TransferSchedule; >>>> import com.paconsulting.pase.transport.components.moving.ToScheduleLock; >>>> >>>> declare PossibleSlotLock >>>> ship : IMover >>>> chamber : IContainer >>>> side : IContainer.UpDown >>>> schedule : TransferSchedule >>>> eta : double >>>> at : double >>>> cause : String >>>> end >>>> .... >>>> >>>> Same issue like in my previous email, different class that cannot be found. >>>> >>>> This works in 5.4.0.Final >>>> >>>> Any clue? >>>> >>>> This seems to me like a really basic thing so either I am missing the >>>> plot somehow or no-one has yet used a locally declared fact classes - >>>> which I think is just not true... >>>> >>>> Regards, >>>> Willem >>>> >>>> On 10/24/2012 07:29 PM, Wolfgang Laun wrote: >>>>> It would be interesting to know (and perhaps help to isolate the problem >>>>> apparently introduced in 5.5.0) if you could try and compile and >>>>> serialize into a single file, and load that in a single readObject. >>>>> >>>>> -W >>>>> >>>>> On 24/10/2012, Willem van Asperen <[email protected]> wrote: >>>>>> Hi Wolfgang, >>>>>> >>>>>> Thanks for picking this up. I am indeed compiling these separate .drl >>>>>> files into separate .drl.compiled files and then creating a kbase using >>>>>> addKnowledgePackages on the individual .drl.compiled files. >>>>>> >>>>>> But: the classes declared in some of by .drl files are only going to be >>>>>> used in that particular .drl file - not anywhere else. >>>>>> Also: this did work in 5.4.0.Final but now has given up on me. >>>>>> >>>>>> Point is that I need to be flexible in mixing different .drl.compiled >>>>>> files into a kbase, based on user specifications. >>>>>> Alternative is that I do not pre-compile these .drl files and only >>>>>> compile them, in combination, in the mix that is required by the user... >>>>>> If that would solve the problem... But it seems to be more cumbersome... >>>>>> >>>>>> Regards, >>>>>> Willem >>>>>> >>>>>> On 10/24/2012 03:39 PM, Wolfgang Laun wrote: >>>>>>> The code you use for loading where you load many .pkg files isn't >>>>>>> quite the counterpart for compiling where you compile one DRL. >>>>>>> >>>>>>> Do you compile and output the .drl files one by one? Apparently you >>>>>>> load them individually? >>>>>>> >>>>>>> Try compiling them all, and then take the Collection<KnowledgePackage> >>>>>>> and writeObject it to a single .pkg from which you load them in one >>>>>>> go. >>>>>>> >>>>>>> Could it be that the type declared in one .drl is used in another .drl >>>>>>> in the same package? Reading this in the wrong order might cause the >>>>>>> CNF. >>>>>>> >>>>>>> -W >>>>>>> >>>>>>> On 24/10/2012, Willem van Asperen <[email protected]> wrote: >>>>>>>> Dear All, >>>>>>>> >>>>>>>> I use the Drools compiler to compile a set of drl files: >>>>>>>> >>>>>>>> >>>>>>>> KnowledgeBuilder kbuilder = >>>>>>>> KnowledgeBuilderFactory.newKnowledgeBuilder(configuration); >>>>>>>> kbuilder.add(ResourceFactory.newFileResource(fileName), >>>>>>>> ResourceType.DRL); >>>>>>>> >>>>>>>> KnowledgeBuilderErrors errors = kbuilder.getErrors(); >>>>>>>> if (errors.size() > 0) { >>>>>>>> for (KnowledgeBuilderError error: errors) { >>>>>>>> logger.error(error); >>>>>>>> } >>>>>>>> throw new IllegalArgumentException("Could not parse >>>>>>>> knowledge."); >>>>>>>> } >>>>>>>> >>>>>>>> ObjectOutputStream out = new ObjectOutputStream(new >>>>>>>> FileOutputStream(fileName+".compiled")); >>>>>>>> out.writeObject( kbuilder.getKnowledgePackages()); >>>>>>>> out.close(); >>>>>>>> >>>>>>>> I then load these *.compiled files into my application: >>>>>>>> >>>>>>>> >>>>>>>> for (String packageName : packages) { >>>>>>>> InputStream is = >>>>>>>> getClass().getResourceAsStream("/"+packageName+".drl.compiled"); >>>>>>>> if (is != null) { >>>>>>>> logger.debug("adding package '"+packageName+"'"); >>>>>>>> ObjectInputStream in = new ObjectInputStream(is); >>>>>>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>) >>>>>>>> in.readObject()); >>>>>>>> in.close(); >>>>>>>> } else >>>>>>>> throw new FileNotFoundException("could not find >>>>>>>> resource for package "+packageName); >>>>>>>> is.close(); >>>>>>>> } >>>>>>>> >>>>>>>> In some of these drl files I declare a class, for instance: >>>>>>>> >>>>>>>> package vcm.selection.standard; >>>>>>>> >>>>>>>> import com.paconsulting.pase.transport.agents.ShiftWorker; >>>>>>>> import com.paconsulting.pase.transport.agents.VCMShiftWorker; >>>>>>>> import com.paconsulting.pase.transport.actions.ExecutableAction; >>>>>>>> import >>>>>>>> com.paconsulting.pase.transport.agents.ScheduleManagingContainer; >>>>>>>> import com.paconsulting.pase.transport.agents.water.Bridge; >>>>>>>> import com.paconsulting.pase.transport.agents.movers.AbstractMover; >>>>>>>> import com.paconsulting.pase.transport.agents.movers.Ship; >>>>>>>> import com.paconsulting.pase.transport.agents.movers.VCMShip; >>>>>>>> >>>>>>>> declare RelevantExecutableAction >>>>>>>> agent : ShiftWorker >>>>>>>> executableAction : ExecutableAction >>>>>>>> end >>>>>>>> ... >>>>>>>> >>>>>>>> When running the >>>>>>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>) >>>>>>>> in.readObject()) I get the following ClassNotFound stack trace: >>>>>>>> >>>>>>>> java.lang.ClassNotFoundException: >>>>>>>> vcm.selection.standard.RelevantExecutableAction >>>>>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:366) >>>>>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:355) >>>>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:354) >>>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:423) >>>>>>>> at >>>>>>>> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) >>>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>>>>>>> at java.lang.Class.forName0(Native Method) >>>>>>>> at java.lang.Class.forName(Class.java:264) >>>>>>>> at >>>>>>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85) >>>>>>>> at >>>>>>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at >>>>>>>> org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at java.util.ArrayList.readObject(ArrayList.java:733) >>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>> at >>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>> at >>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>>>>>> at >>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at >>>>>>>> org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at org.drools.rule.Rule.readExternal(Rule.java:207) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at >>>>>>>> org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at java.util.HashMap.readObject(HashMap.java:1155) >>>>>>>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) >>>>>>>> at >>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>>>>>> at >>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at >>>>>>>> org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at org.drools.rule.Package.readExternal(Package.java:208) >>>>>>>> at >>>>>>>> org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at java.util.ArrayList.readObject(ArrayList.java:733) >>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>> at >>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>> at >>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>>>>>> at >>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>>>>>> at >>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.addPackages(KnowledgebaseDefinition.java:48) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.materialize(KnowledgebaseDefinition.java:59) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.TeamDefinition.materialize(TeamDefinition.java:97) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.OperatingModelDefinition.materialize(OperatingModelDefinition.java:36) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.Run.<init>(Run.java:31) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.RunDefinition.materialize(RunDefinition.java:53) >>>>>>>> at >>>>>>>> com.paconsulting.pase.core.configuration.runconfig.RunConfigExecutor$ScheduleExecutorWrapper.run(RunConfigExecutor.java:69) >>>>>>>> ... >>>>>>>> >>>>>>>> I'm sure I miss something as this is basic functionality. Maybe I must >>>>>>>> tell the kbase where to load the classes... >>>>>>>> >>>>>>>> Can someone point me in the right direction? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Willem >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> rules-users mailing list >>>>>>>> [email protected] >>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> rules-users mailing list >>>>>>> [email protected] >>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>> _______________________________________________ >>> rules-dev mailing list >>> [email protected] >>> https://lists.jboss.org/mailman/listinfo/rules-dev > > _______________________________________________ > rules-dev mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-dev
