Thank you Mark,
I added the error checking code as advised :
//read in the source
final Reader source = new InputStreamReader(
HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
final PackageBuilder builder = new PackageBuilder();
//this will parse and compile in one step
//NOTE: There are 2 methods here, the one argument one is for
normal DRL.
builder.addPackageFromDrl( source );
//get the compiled package (which is serializable)
final Package pkg = builder.getPackage();
PackageBuilderErrors pbe = builder.getErrors();
DroolsError[] de = pbe.getErrors();
for (int i = 0; i < de.length; i++) {
System.out.println("ERROR["+i+"]:" + de[i]);
}
System.out.println("pkg.getErrorSummary() : " +
pkg.getErrorSummary());
//add the package to a rulebase (deploy the rule package).
final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
And here is what I got:
pkg.getErrorSummary() : null
Exception in thread "main" java.lang.IllegalArgumentException: The rule
called Hello World is not valid. Check for compile errors reported.
at
org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:363)
at
org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:263)
at
org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:293)
at
org.drools.examples.HelloWorldExample.readRule(HelloWorldExample.java:72
)
at
org.drools.examples.HelloWorldExample.main(HelloWorldExample.java:21)
So basically - no errors...? Or ... am I showing errors correctly?
Also could you please specify what do you mean under "java is invalid".
You mean JDK level? I am using JANINO 2.5.6 compiler in JVM 1.4 .. is
this correct configuration?
Thanks again!
-Sergey
________________________________
From: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Mark Proctor
Sent: Friday, June 08, 2007 10:17 AM
To: Rules Users List
Subject: Re: [rules-users] problem in rules 4.0.0.11754MR2
The consequence will be null if the java you used is invalid. When you
create the Package check the errors before adding it to the rule base as
you can get a lot more info. In fact thats good "best practice" always
verify that the package errors are emtpy before attempting to use the
package.
Mark
Manukyan, Sergey wrote:
Hi,
I am using JBoss Rules 4.0.0.11754MR2 in an RAD 7.0 (Eclipse 3.2)
environment.
Cannot make it work, even examples...
Here is a message produces on all rules: The rule called <here goes rule
name> is not valid. Check for compile errors reported.
Here is a full stack trace:
Exception in thread "main" java.lang.IllegalArgumentException: The rule
called Hello World is not valid. Check for compile errors reported.
at
org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:363)
at
org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:263)
at
org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:293)
at
org.drools.examples.HelloWorldExample.readRule(HelloWorldExample.java:72
)
at
org.drools.examples.HelloWorldExample.main(HelloWorldExample.java:21)
After digging it further I found that in Rule class method isValid is
being called defiend as followes:
public boolean isValid() {
if ( this.consequence == null || !isSemanticallyValid() ) {
return false;
}
return true;
}
The debugger shows that this.consequence is null always! So rules are
always not valid.
Anyone saw this problem? Any idea how to resolve it?
Thanks a lot!
-Sergey
**********************
** LEGAL DISCLAIMER **
**********************
This E-mail message and any attachments may contain
legally privileged, confidential or proprietary
information. If you are not the intended recipient(s),
or the employee or agent responsible for delivery of
this message to the intended recipient(s), you are
hereby notified that any dissemination, distribution
or copying of this E-mail message is strictly
prohibited. If you have received this message in
error, please immediately notify the sender and
delete this E-mail message from your computer.
________________________________
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users