KnowledgeAgent custom class loader not working for PKG resources
by Hrumph
I believe there may be a bug when trying to use a custom class loader with
the KnowledgeAgent and the KnowledgeBuilderConfiguration, and when the
ChangeSet is a PKG resource.
I have been trying to get the knowledge-agent-classloader sample from the
new Drools Cookbook to work with a PKG resource. The sample works fine for
a DRL resource, but when I convert it to use my fact jar, and a PKG resource
containing my rules, which I downloaded from Guvnor, it throws a
ClassNotFoundException for my fact model. If I put my fact model in the
classpath, the error goes away and my rules can be added to the
KnowledgeAgent and run correctly. Following is the code from the sample
that I have converted, and I have attached a zip file with a complete
project demonstrating the problem. Also, I can get my rules and fact
model to work if I use a DRL ChangeSet.knowledge-agent-classloader.zip
URL modelJarURL = getClass().getResource("Patient-1.0.jar");
URLClassLoader customURLClassloader = new URLClassLoader(new URL[]
{modelJarURL });
KnowledgeBuilderConfiguration kbuilderConfig =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,
customURLClassloader);
KnowledgeBaseConfiguration kbaseConfig =
KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null,
customURLClassloader);
KnowledgeBase kbase =
KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);
KnowledgeAgentConfiguration aconf =
KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
KnowledgeAgent kagent =
KnowledgeAgentFactory.newKnowledgeAgent("test", kbase, aconf,
kbuilderConfig);
// kagent.applyChangeSet(new ClassPathResource("change-set.xml",
getClass())); // this goes with model.jar
// kagent.applyChangeSet(new ClassPathResource("drl-change-set.xml",
getClass())); // this goes with Patient.jar
kagent.applyChangeSet(new ClassPathResource("pkg-change-set.xml",
getClass())); // this goes with Patient.jar
return kagent.getKnowledgeBase();
Following is the stack trace from the error:
java.lang.NullPointerException
at
org.drools.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:148)
at
org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:1016)
at
org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:785)
at
org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:657)
at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:190)
at
org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:169)
at
drools.cookbook.chapter02.KnowledgeAgentClassloaderTest.createKnowledgeBase(KnowledgeAgentClassloaderTest.java:59)
at
drools.cookbook.chapter02.KnowledgeAgentClassloaderTest.customClassloaderTest(KnowledgeAgentClassloaderTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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)
I have been having the exact same problem when trying to use a custom class
loader with just a KnowldegeBuilder and no KnowledgeAgent.
http://drools.46999.n3.nabble.com/file/n3746456/knowledge-agent-classload...
knowledge-agent-classloader.zip
--
View this message in context: http://drools.46999.n3.nabble.com/KnowledgeAgent-custom-class-loader-not-...
Sent from the Drools: User forum mailing list archive at Nabble.com.
13 years, 12 months
GUVNOR 5.4 JBOSS v4.2.3 deployment error
by abhinay_agarwal
hey,
i was trying to upgrade from guvnor 5.3.0 to 5.4 when i pasted the guvnor
war into the deployment folder and restarted the server it throwed an error
2012-06-29 10:06:52,163 DEBUG [org.jboss.web.WebModule] Starting failed
jboss.web.deployment:war=drools-guvnor.war,id=-1487681113
org.jboss.deployment.DeploymentException: Error during deploy; - nested
throwable: (javax.naming.NamingException: resource-env-ref: BeanManager has
no valid JNDI binding. Check the jboss-web/resource-env-ref.)
i know its some binding error in jboss but any help would be appreciated !!
Thanks in advance,
Abhinay
--
View this message in context: http://drools.46999.n3.nabble.com/GUVNOR-5-4-JBOSS-v4-2-3-deployment-erro...
Sent from the Drools: User forum mailing list archive at Nabble.com.
13 years, 12 months
Hibernate Configuration with Drools 5.4
by zeeshan
Hi All !
I want to use Hibernate for database persistence in my drools project.
Please suggest me the steps. I am using 5.4.0 final version. Which version
of hibernate I shall use whether 3.1 or Annotation one.....?? I have idea
about 3.1. Actually I am having 50,000 records in one of my Decision table,
so it is taking too much time to give the result. Now I have decided to use
move this to database. So please tell me configuration steps.
Thanks !!
--
View this message in context: http://drools.46999.n3.nabble.com/Hibernate-Configuration-with-Drools-5-4...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years
break points in drl file
by al so
has anyone tried putting break points in drl file as part of a Spring MVC
app?
no clue on which Main method to choose when doing Debug As Drools
Application from eclipse 3.6/3.7 in this situation.
14 years
System problems
by paco
I am using Drools 5.4.0, guvnor 5.3.0 and default database.
I imported the rules with XML file (550 KB) in Guvnor. After I can check,
validate and test (with run analysis button) the rules without problems.
Everything works fine.
After when I import ed other rules XML file (30,000 KB), I realized that the
system becomes too slow and obviously I can no longer veifier, validate or
test my rules. I get errors like the following:
Please suggest
King regards
--
View this message in context: http://drools.46999.n3.nabble.com/System-problems-tp4018361.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years
ResourceCompilationFailedEvent - when does it happen, and why?
by Gustaf Cele
I'm trying to understand what KnowledgeAgentEventListener. resourceCompilationFailed signifies, and when it occurs. The javadocs don't say anything, and it's not entirely obvious from looking at the code what causes it. Suppose I have KnowledgeAgent with newInstance=true and initialized with a changeset which links to a Guvnor instance like this:
<change-set >
<add>
<resource type="PKG"
source="http://guvnor-host/drools-guvnor/org.drools.guvnor.Guvnor/package/com.exa..." />
</add>
</change-set>
Just throwing syntax errors into the rules in Guvnor obviously doesn't work, since I can't even build the binary package then. Is there any way to provoke this event with the above setup, so I can see how it affects my application? I'm using Drools 5.4.0.Final.
14 years
Guvnor jackrabbit session issue?
by drdaveg
I am moving some working Eclipse-developed code to Guvnor and am seeing a
huge number of messages logged for jackrabbit "session that has already been
closed". This happens nearly continuously, with the session number
ascending:
11:18:01,889 WARN [org.apache.jackrabbit.core.session.SessionState]
(Finalizer) Attempt to close session-guest-45 after it has alre
ady been closed. Please review your code for proper session management.:
java.lang.Exception: Stack trace of the duplicate attempt t
o close session-guest-45
Trying to debug the working code moved from my local system Guvnor that say
to check the log. These session messages consume thousands of lines of
warnings (at dozens per button press) that finding any "real" error messages
seems impossible (even with automated searches).
This issue has been posted on other forums but I don't see anything here.
Is there a work around this issue - hopefully correcting the session
persistence, as opposed to changing the logging level? I am guessing
leaving Guvnor ungracefully causes an endless stream of these (forever).
Thanks!
--
View this message in context: http://drools.46999.n3.nabble.com/Guvnor-jackrabbit-session-issue-tp38680...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years