[rules-dev] Fwd: [rules-users] ClassNotFound on class defined in drl with 5.5.0.CR1

Willem van Asperen willem at van.asperen.org
Thu Oct 25 06:44:48 EDT 2012


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 at 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 at gmail.com>, Rules Users List
>> <rules-users at 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 at 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 at 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 at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>>
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: failing-load.jar
Type: application/x-java-archive
Size: 1997 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-dev/attachments/20121025/f7b3fae9/attachment-0001.jar 


More information about the rules-dev mailing list