Could you please provide us the line number where de ClassNotFoundException occurs. I think I know what could be happening. When you use incremental change set processing (newInstance = false), the agent use a kbuilder to perform some diff between the modified and original resource. The thing is that the agent always instantiate a kbuilder even if all the resources are already compiled (which is useless).

Please provide me the line number of the exception, i will start working on this issue. Meanwhile, as a workaround, add the drools-compiler dependency. 
The KAgent was practically rebuilt from scratch since 5.1M1 so these kind of error were expected ;)

Best,


2010/7/1 Jeffrey Schneller <jeffrey.schneller@envisa.com>

As a follow-up, this did work however there are still some problems.  The rules did get pulled into the application and seem to be running but clearly something is not right.

 

I needed to include the drools-compiler.jar in my app otherwise I was getting a ClassNotFoundException.  I am pulling a compiled package from the Guvnor so not sure why I need the compiler jar in my app.

 

When the rules are pulled into the app I am getting the exception thrown which is being logged and the app can continue running:

 

2010-07-01 00:36:14,201 | INFO (MyDroolsListener.java:41) KnowledgeAgent performing an incremental build of the ChangeSet

2010-07-01 00:36:14,261 | ERROR (MyDroolsListener.java:30) java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage 

2010-07-01 00:36:14,261 | WARN (MyDroolsListener.java:53) KnowledgeAgent: The resource didn't create any package: [UrlResource path='http://ruleserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST']

2010-07-01 00:36:14,271 | INFO (MyDroolsListener.java:41) KnowledgeAgent incremental build of KnowledgeBase finished and in use

 

Then if I rebuild the package in the Guvnor then I see the following [the two lines are repeated for each rule in the package]:

 

[2010:07:182 00:07:741:debug] BinaryResourceDiffProducerImpl: Comparing [Rule name=v_32, agendaGroup=MAIN, salience=0, no-loop=false] against [Rule name=v_32, agendaGroup=MAIN, salience=0, no-loop=false]

[2010:07:182 00:07:741:debug] BinaryResourceDiffProducerImpl: The rules have different LHS

 

 

Thanks

 

 

 

 

From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Esteban Aliverti
Sent: Wednesday, June 30, 2010 6:35 PM


To: Rules Users List
Subject: Re: [rules-users] Drools and Guvnor 5.1M2 - Exception beingthrownin processChangeSet

 

The problem seams to happen because the kagent can't access the url. 

If you try to access the change set xml using a browser, does the browser ask you for authentication? I don't know why, but guvnor protect its urls since 5.1 I think. 

So, basically, the error is that guvnor can't read from the url. The same error happens if you provide a non existent url. I need to open a jira for this.

As a work around, try doing this:

 

<change-set xmlns='http://drools.org/drools-5.0/change-set'

    xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'

    xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >

    <add>

         <resource basicAuthentication='enabled' username='admin' password='admin' source='http://ruleserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST' type='PKG' />

    </add>

</change-set>

 


Remember to replace username and password.

 

Best,

 

2010/6/30 Jeffrey Schneller <jeffrey.schneller@envisa.com>

Here is the xml file I am getting:

 

<change-set xmlns='http://drools.org/drools-5.0/change-set'

    xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'

    xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >

    <add>

         <resource source='http://ruleserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST' type='PKG' />

    </add>

</change-set>

 

 

From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Esteban Aliverti
Sent: Wednesday, June 30, 2010 3:18 PM
To: Rules Users List
Subject: Re: [rules-users] Drools and Guvnor 5.1M2 - Exception being thrownin processChangeSet

 

Could you please post the xml file you are getting from http://rulerserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST/ChangeSet.xml?

 

Best,

2010/6/30 Jeffrey Schneller <jeffrey.schneller@envisa.com>

I am trying to upgrade to the 5.1M2 build from 5.0.1 and am running into some issues.  I have installed the new 5.1 Guvnor and imported the rules from my 5.0.1 Guvnor instance. 

I then removed the old 5.0.1 drools jars from my app and replaced them with the 5.1M2 drools jars.  I was also added all the dependent libraries.  The code that worked with the 5.0.1 version does not work with the 5.1M2 version.  In 5.0.1 I was constructing the xml and streaming it into the applyChangeSet method.  With 5.1M2 I am just pointing to the change set xml file that is in the Guvnor.

 

I am seeing a NullPointerException being thrown  in the processChangeSet method as shown below.

 

Caused by: java.lang.NullPointerException

                at org.drools.agent.impl.KnowledgeAgentImpl.processChangeSet(KnowledgeAgentImpl.java:171)

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

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

 

 

Did I miss something?  Am I doing something wrong?  Below is the code that I have.

 

                 KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();

                 kaconf.setProperty( "drools.agent.scanDirectories", "true" );

                 kaconf.setProperty("drools.agent.newInstance", "false");

                                 

                 ResourceFactory.getResourceChangeScannerService().start();

                 ResourceFactory.getResourceChangeNotifierService().start();

 

                String url = "http://rulerserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST/ChangeSet.xml";

                                               

                KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "Configuration", kaconf );

                kagent.setSystemEventListener(new MyDroolsListener());

try {

                                kagent.applyChangeSet(ResourceFactory.newUrlResource(new URL(url)));        // ERROR IS OCCURING INSIDE OF applyChangeSet

                } catch (MalformedURLException e) {

                                e.printStackTrace();

                }


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




--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti


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




--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti


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




--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti