For the KnowledgeAgent, a resource of type PKG is a single KnowledgePackage object; reading is done like this, according to KnoledgeAgentImpl<br><br>            InputStream is = null;<br>            KnowledgePackageImp kpkg = null;<br>
            try {<br>
                is = resource.getInputStream();<br>                Object object = DroolsStreamUtils.streamIn( is );<br>                if ( object instanceof KnowledgePackageImp ) {<br>                    kpkg = ((KnowledgePackageImp) object);<br>

                } else {<br>                    kpkg = new KnowledgePackageImp( (Package) object );<br>                }<br>                for ( Rule rule : kpkg.pkg.getRules() ) {<br>                    rule.setResource( resource );<br>

                }<br><br>            } catch ( Exception ex ) {<br>         ...<br>            } finally {<br>         ...<br>            }<br>            return kpkg;<br><br>-W<br><br><div class="gmail_quote">2011/6/14 Lisa Horton <span dir="ltr">&lt;<a href="mailto:LHorton@abclegal.com" target="_blank">LHorton@abclegal.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div link="blue" vlink="purple" lang="EN-US">

<div>

<p class="MsoNormal">Drools 5.1.1</p>

<p class="MsoNormal">I create a package from a decision table:</p>

<p class="MsoNormal">                                ObjectOutputStream
out;</p>

<p class="MsoNormal">                                try
{</p>

<p class="MsoNormal">                                                out
= new ObjectOutputStream(new FileOutputStream(“venue.pkg”));</p>

<p class="MsoNormal">                                                out.writeObject(knowledgeBase.getKnowledgePackages());
// knowledgeBase previously loaded from spreadsheet</p>

<p class="MsoNormal">                                                out.close();</p>

<p class="MsoNormal">                                }
catch (IOException ex) {</p>

<p class="MsoNormal">                                                logger.debug(ex.getMessage());</p>

<p class="MsoNormal">                                }</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">I can load this package directly into a knowledge base and
run rules with no errors:</p>

<p class="MsoNormal">                                ObjectInputStream
in;</p>

<p class="MsoNormal">                                Collection&lt;KnowledgePackage&gt;
packages = null;</p>

<p class="MsoNormal">                                try
{</p>

<p class="MsoNormal">                                                in
= new ObjectInputStream(new FileInputStream(“venue.pkg”));</p>

<p class="MsoNormal">                                                packages
= (Collection&lt;KnowledgePackage&gt;) in.readObject();</p>

<p class="MsoNormal">                                                in.close();</p>

<p class="MsoNormal">                                }
catch (Exception ex) {</p>

<p class="MsoNormal">                                                logger.debug(ex.getMessage());</p>

<p class="MsoNormal">                                }</p>

<p class="MsoNormal">                                knowledgeBase.addKnowledgePackages(packages);</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">HOWEVER if I try to load the same package using a knowledge
agent:</p>

<p class="MsoNormal">                                KnowledgeAgent
kagent = KnowledgeAgentFactory.newKnowledgeAgent(&quot;TheAgent&quot;);</p>

<p class="MsoNormal">                                kagent.applyChangeSet(ResourceFactory.newFileResource(“ChangeSet.xml”));</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">The package does not load.  Any idea of the cause of
these exceptions?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">[2011:06:165 10:06:159:info] ResourceChangeNotification
created</p>

<p class="MsoNormal">[2011:06:165 10:06:161:info] ResourceChangeScanner
reconfigured with interval=60</p>

<p class="MsoNormal">[2011:06:165 10:06:161:info] ResourceChangeScanner created
with default interval=60</p>

<p class="MsoNormal">[2011:06:165 10:06:162:debug] ResourceChangeNotification
monitor added monitor=org.drools.io.impl.ResourceChangeScannerImpl@5c73a7ab</p>

<p class="MsoNormal">[2011:06:165 10:06:163:debug] KnowledgeAgent building
resource map</p>

<p class="MsoNormal">[2011:06:165 10:06:163:info] KnowledegAgent has started listening
for ChangeSet notifications</p>

<p class="MsoNormal">[2011:06:165 10:06:163:info] KnowledgeAgent created, with
configuration:</p>

<p class="MsoNormal">monitorChangeSetEvents=true scanResources=true
scanDirectories=true newInstance=true</p>

<p class="MsoNormal">[2011:06:165 10:06:413:info] KnowledgeAgent applying ChangeSet</p>

<p class="MsoNormal">[2011:06:165 10:06:415:debug] KnowledgeAgent notifier
subscribing to resource=[ClassPathResource
path=&#39;com/abclegal/rules/resources/venue.pkg&#39;]</p>

<p class="MsoNormal">[2011:06:165 10:06:415:debug] ResourceChangeNotification
subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@5fe0f2f6 to
resource=[ClassPathResource path=&#39;com/abclegal/rules/resources/venue.pkg&#39;]</p>

<p class="MsoNormal">[2011:06:165 10:06:416:debug] ResourceChangeScanner
subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@296f25a7 to
resource=[ClassPathResource path=&#39;com/abclegal/rules/resources/venue.pkg&#39;]</p>

<p class="MsoNormal">[2011:06:165 10:06:416:debug] KnowledgeAgent rebuilding
KnowledgeBase using ChangeSet</p>

<p class="MsoNormal">[2011:06:165 10:06:556:exception]</p>

<p class="MsoNormal">java.lang.RuntimeException: KnowledgeAgent exception while
trying to deserialize KnowledgeDefinitionsPackage  </p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:664)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:889)</p>

<p class="MsoNormal">        at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesUtilities.createKnowledgeBaseUsingAgent(RulesUtilities.java:91)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesBenchmarks.benchmarkVenueSelection(RulesBenchmarks.java:39)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesBenchmarks.main(RulesBenchmarks.java:33)</p>

<p class="MsoNormal">Caused by: java.lang.ClassCastException: [B cannot be cast
to org.drools.rule.DialectRuntimeRegistry</p>

<p class="MsoNormal">        at
org.drools.rule.Package.readExternal(Package.java:197)</p>

<p class="MsoNormal">        at
org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:115)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)</p>

<p class="MsoNormal">        at
java.util.ArrayList.readObject(ArrayList.java:593)</p>

<p class="MsoNormal">        at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</p>

<p class="MsoNormal">        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</p>

<p class="MsoNormal">        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</p>

<p class="MsoNormal">        at
java.lang.reflect.Method.invoke(Method.java:597)</p>

<p class="MsoNormal">        at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)</p>

<p class="MsoNormal">        at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)</p>

<p class="MsoNormal">        at
org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:205)</p>

<p class="MsoNormal">        at
org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:174)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:653)</p>

<p class="MsoNormal">        ... 8 more</p>

<p class="MsoNormal">[2011:06:165 10:06:856:debug] KnowledgeAgent obtaining pkg
resource=[ClassPathResource path=&#39;com/abclegal/rules/resources/venue.pkg&#39;]</p>

<p class="MsoNormal">[2011:06:165 10:06:856:exception]</p>

<p class="MsoNormal">java.lang.RuntimeException: KnowledgeAgent exception while
trying to deserialize KnowledgeDefinitionsPackage  </p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:914)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesUtilities.createKnowledgeBaseUsingAgent(RulesUtilities.java:91)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesBenchmarks.benchmarkVenueSelection(RulesBenchmarks.java:39)</p>

<p class="MsoNormal">        at
com.abclegal.rules.RulesBenchmarks.main(RulesBenchmarks.java:33)</p>

<p class="MsoNormal">Caused by: java.lang.NullPointerException</p>

<p class="MsoNormal">        at
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:906)</p>

<p class="MsoNormal">        ... 7 more</p>

<p class="MsoNormal">[2011:06:165 10:06:865:info] KnowledgeAgent new
KnowledgeBase now built and in use</p>

<p class="MsoNormal">[2011:06:165 10:06:865:debug] KnowledgeAgent finished
rebuilding KnowledgeBase using ChangeSet</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">  </p>

</div>

</div>


<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>