<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt">I updated my post.<br><br>Exception in thread "main" java.lang.NoSuchMethodError: org.drools.util.CompositeClassLoader.clone()Lorg/drools/util/CompositeClassLoader;<br>&nbsp;&nbsp;&nbsp; at org.drools.RuleBaseConfiguration.getClassLoader(RuleBaseConfiguration.java:886)<br>&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractRuleBase.&lt;init&gt;(AbstractRuleBase.java:164)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooRuleBase.&lt;init&gt;(ReteooRuleBase.java:151)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooRuleBase.&lt;init&gt;(ReteooRuleBase.java:128)<br>&nbsp;&nbsp;&nbsp; at org.drools.RuleBaseFactory.newRuleBase(RuleBaseFactory.java:86)<br>&nbsp;&nbsp;&nbsp; at org.drools.RuleBaseFactory.newRuleBase(RuleBaseFactory.java:74)<br>&nbsp;&nbsp;&nbsp; at
 org.drools.RuleBaseFactory.newRuleBase(RuleBaseFactory.java:37)<br>&nbsp;&nbsp;&nbsp; at org.drools.impl.KnowledgeBaseFactoryServiceImpl.newKnowledgeBase(KnowledgeBaseFactoryServiceImpl.java:49)<br>&nbsp;&nbsp;&nbsp; at org.drools.KnowledgeBaseFactory.newKnowledgeBase(KnowledgeBaseFactory.java:63)<br>&nbsp;&nbsp;&nbsp; at org.drools.agent.KnowledgeAgentFactory.newKnowledgeAgent(KnowledgeAgentFactory.java:138)<br>&nbsp;&nbsp;&nbsp; at org.drools.guvnor.examples.mortgage.client.MortgageClientExample.readKnowledgeBase(MortgageClientExample.java:89)<br>&nbsp;&nbsp;&nbsp; at org.drools.guvnor.examples.mortgage.client.MortgageClientExample.main(MortgageClientExample.java:49)<br><div><span><br></span></div><div><br></div>  <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1">  <b><span
 style="font-weight:bold;">From:</span></b> Michael Anstis &lt;michael.anstis@gmail.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Rules Users List &lt;rules-users@lists.jboss.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Friday, September 14, 2012 11:48 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users] Guvnor example how to access rules in database instead sample.drl file?<br> </font> </div> <br>
<div id="yiv718543131">I assume:-<br><br>1) You changed the URL in the change-set to suit where your Guvnor is running?<br><br>The stack trace suggests http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST could not be found.<br>
<br>2) You built the mortgages package in Guvnor?<br><br>I've been running this very same example numerous times in the past few days, both on Tomcat and JBoss AS7.1.1 so am confident it works.<br><br>On 14 September 2012 16:56, richard <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:rx74me@yahoo.com" target="_blank" href="mailto:rx74me@yahoo.com">rx74me@yahoo.com</a>&gt;</span> wrote:<br>
<div class="yiv718543131gmail_quote"><blockquote class="yiv718543131gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Guvnor - Version 5.4.0.Final<br>
\drools-examples\drools-examples-brms\mortgage-example<br>
<br>
I get this error.<br>
<br>
java.lang.RuntimeException: KnowledgeAgent exception while trying to<br>
deserialize KnowledgeDefinitionsPackage<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:776)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:1071)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:824)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:673)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:203)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:182)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.guvnor.examples.mortgage.client.MortgageClientExample.readKnowledgeBase(MortgageClientExample.java:92)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.guvnor.examples.mortgage.client.MortgageClientExample.main(MortgageClientExample.java:49)<br>
Caused by: java.io.FileNotFoundException:<br>
<a rel="nofollow" target="_blank"  href="http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST">http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST</a><br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at org.drools.io.impl.UrlResource.grabStream(UrlResource.java:210)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at org.drools.io.impl.UrlResource.getInputStream(UrlResource.java:146)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:748)<br>
&nbsp; &nbsp; &nbsp; &nbsp; ... 7 more<br>
<div class="yiv718543131im">Exception in thread "main" java.lang.NullPointerException<br>
</div>&nbsp; &nbsp; &nbsp; &nbsp; at java.util.AbstractCollection.addAll(AbstractCollection.java:303)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:1077)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:824)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:673)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:203)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:182)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.guvnor.examples.mortgage.client.MortgageClientExample.readKnowledgeBase(MortgageClientExample.java:92)<br>
&nbsp; &nbsp; &nbsp; &nbsp; at<br>
org.drools.guvnor.examples.mortgage.client.MortgageClientExample.main(MortgageClientExample.java:49)<br>
<br>
/*<br>
&nbsp;* Copyright 2011 JBoss Inc<br>
&nbsp;*<br>
&nbsp;* Licensed under the Apache License, Version 2.0 (the "License");<br>
&nbsp;* you may not use this file except in compliance with the License.<br>
&nbsp;* You may obtain a copy of the License at<br>
&nbsp;*<br>
&nbsp;* &nbsp; &nbsp; &nbsp;http://www.apache.org/licenses/LICENSE-2.0<br>
&nbsp;*<br>
&nbsp;* Unless required by applicable law or agreed to in writing, software<br>
&nbsp;* distributed under the License is distributed on an "AS IS" BASIS,<br>
&nbsp;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br>
&nbsp;* See the License for the specific language governing permissions and<br>
&nbsp;* limitations under the License.<br>
&nbsp;*/<br>
<br>
package org.drools.guvnor.examples.mortgage.client;<br>
<br>
import javax.swing.JOptionPane;<br>
<br>
import org.drools.KnowledgeBase;<br>
import org.drools.agent.KnowledgeAgent;<br>
import org.drools.agent.KnowledgeAgentFactory;<br>
import org.drools.definition.type.FactType;<br>
import org.drools.io.Resource;<br>
import org.drools.io.ResourceFactory;<br>
import org.drools.runtime.StatefulKnowledgeSession;<br>
<br>
public class MortgageClientExample {<br>
<br>
&nbsp; &nbsp; /**<br>
&nbsp; &nbsp; &nbsp;* Entry point demonstrating use of KnowledgeAgent and changesets<br>
retrieving<br>
&nbsp; &nbsp; &nbsp;* a rule package from a running instance of Guvnor.<br>
&nbsp; &nbsp; &nbsp;* @param args<br>
&nbsp; &nbsp; &nbsp;*/<br>
&nbsp; &nbsp; public static void main(String[] args) {<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; JOptionPane.showMessageDialog(null, "This example makes a few<br>
assumptions:\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "- Start the app server on localhost on port 8080.\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "- Rename the guvnor war to guvnor.war and deploy it to the<br>
app server.\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "- Surf to Guvnor and log in.\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "- In the menu Administration, Import/Export, import<br>
/exported-repositories/mortgage-sample-repository.xml\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "- Refresh the browser, open menu Package, click Rebuild all<br>
packages.\n" +<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Click OK when this is done.", "Preparation",<br>
JOptionPane.INFORMATION_MESSAGE);<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; StatefulKnowledgeSession ksession = null;<br>
&nbsp; &nbsp; &nbsp; &nbsp; try {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // load up the knowledge base<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KnowledgeBase kbase = readKnowledgeBase();<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Dynamic fact creation as the model was declared in the DRL<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FactType appType = kbase.getFactType("mortgages",<br>
"LoanApplication");<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Object application = appType.newInstance();<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appType.set(application, "amount", 25000);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appType.set(application, "deposit", 1500);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appType.set(application, "lengthYears", 20);<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FactType incomeType = kbase.getFactType("mortgages",<br>
"IncomeSource");<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Object income = incomeType.newInstance();<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; incomeType.set(income, "type", "Job");<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; incomeType.set(income, "amount", 65000);<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Invoke the magic<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession = kbase.newStatefulKnowledgeSession();<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession.insert(application);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession.insert(income);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession.fireAllRules();<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Voila!<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String message = "The loan application is now:\n" + application;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(message);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; JOptionPane.showMessageDialog(null, message, "Result",<br>
JOptionPane.INFORMATION_MESSAGE);<br>
&nbsp; &nbsp; &nbsp; &nbsp; } catch (InstantiationException e) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br>
&nbsp; &nbsp; &nbsp; &nbsp; } catch (IllegalAccessException e) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br>
&nbsp; &nbsp; &nbsp; &nbsp; } finally {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (ksession != null) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession.dispose();<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
&nbsp; &nbsp; }<br>
<br>
&nbsp; &nbsp; /**<br>
&nbsp; &nbsp; &nbsp;* Load KnowledgeBase using KnowledgeAgent configured with accompanying<br>
changeset xml<br>
&nbsp; &nbsp; &nbsp;* @return A KnowledgeBase<br>
&nbsp; &nbsp; &nbsp;*/<br>
&nbsp; &nbsp; private static KnowledgeBase readKnowledgeBase() {<br>
&nbsp; &nbsp; &nbsp; &nbsp; KnowledgeAgent kagent =<br>
KnowledgeAgentFactory.newKnowledgeAgent("MortgageAgent");<br>
&nbsp; &nbsp; &nbsp; &nbsp; Resource changeset = ResourceFactory.newClassPathResource(<br>
<br>
"org/drools/guvnor/examples/mortgage/mortgage-changeset.xml");<br>
&nbsp; &nbsp; &nbsp; &nbsp; kagent.applyChangeSet(changeset);<br>
&nbsp; &nbsp; &nbsp; &nbsp; KnowledgeBase kbase = kagent.getKnowledgeBase();<br>
&nbsp; &nbsp; &nbsp; &nbsp; kagent.dispose();<br>
&nbsp; &nbsp; &nbsp; &nbsp; return kbase;<br>
&nbsp; &nbsp; }<br>
<br>
}<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a rel="nofollow" target="_blank" href="http://drools.46999.n3.nabble.com/Guvnor-example-how-to-access-rules-in-database-instead-sample-drl-file-tp4019713p4019795.html">http://drools.46999.n3.nabble.com/Guvnor-example-how-to-access-rules-in-database-instead-sample-drl-file-tp4019713p4019795.html</a><br>

<div class="yiv718543131HOEnZb"><div class="yiv718543131h5">Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a rel="nofollow" ymailto="mailto:rules-users@lists.jboss.org" target="_blank" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a rel="nofollow" target="_blank" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></div></blockquote></div><br>
</div><br>_______________________________________________<br>rules-users mailing list<br><a ymailto="mailto:rules-users@lists.jboss.org" href="mailto:rules-users@lists.jboss.org">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><br> </div> </div>  </div></body></html>