Are you sure that the binary package was also created with the same drools version you are using in your tests?

Best Regards,

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti
- Developer @ http://www.plugtree.com
- Blog @ http://ilesteban.wordpress.com


On Wed, Feb 22, 2012 at 7:39 PM, Hrumph <Herman.Post@imail.org> wrote:

I have a 5.4.0-SNAPSHOT version with your changes built and made the KnowledgeAgentConfiguration change you suggested.  My test code is now like this:

 

        KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();

        aconf.setProperty("drools.agent.useKBaseClassLoaderForCompiling", "true"); // new

        // KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("test", kbase, aconf, kbuilderConfig);

        KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("test", kbase, aconf);  // not passing kBuilderConfig

 

My project is attached – let me know if it doesn’t upload.

 

I can see I’m stepping threw your new code,  and I’m now getting a new error, below.

 

I can also tell you that we tried to just use the KnowledgeBuilder with custom classloader as in the Expert documentation (4.1.1) and could not get that to work either.  Stack trace follows:

 

java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage 

                at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:770)

                at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:1029)

                at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:812)

                at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:671)

                at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:202)

                at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:181)

                at drools.cookbook.chapter02.KnowledgeAgentClassloaderTest.createKnowledgeBase(KnowledgeAgentClassloaderTest.java:62)

                at drools.cookbook.chapter02.KnowledgeAgentClassloaderTest.customClassloaderTest(KnowledgeAgentClassloaderTest.java:30)

                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 org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)

                at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)

                at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)

                at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)

                at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)

                at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)

                at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)

                at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)

                at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)

                at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)

                at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)

                at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)

                at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)

                at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

                at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

                at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

                at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

                at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by: java.io.OptionalDataException

                at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1367)

                at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)

                at org.drools.rule.Pattern.readExternal(Pattern.java:118)

                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:991)

                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.GroupElement.readExternal(GroupElement.java:63)

                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:180)

                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.IdentityHashMap.readObject(IdentityHashMap.java:1216)

                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:991)

                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.MVELDialectRuntimeData.readExternal(MVELDialectRuntimeData.java:92)

                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:1043)

                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:991)

                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:59)

                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:205)

                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.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:205)

                at org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:189)

                at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:756)

                ... 29 more

 

Thanks,

 

Herm


knowledge-agent-classloader-5.4.zip (53K) Download Attachment

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users