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 <willem(a)van.asperen.org>
>> 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 <wolfgang.laun(a)gmail.com>, Rules Users List
>> <rules-users(a)lists.jboss.org>
>>
>> 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 <willem(a)van.asperen.org> 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 <willem(a)van.asperen.org>
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
>>>>>> 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
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-dev