[rules-users] Rules in App Server Error

Mauricio Salatino salaboy at gmail.com
Sat Dec 4 09:53:02 EST 2010


Yes.. make sure that all the variables that you use at least in the left
hand side of the expressions are declared.. so when you us it again it will
be there..
Greetings!

On Sat, Dec 4, 2010 at 12:19 AM, Greg Barton <greg_barton at yahoo.com> wrote:

> My, aren't we snippy?
>
> OK, well if you read this then note that those rules shouldn't work in any
> environment for the reason previously stated.  (Use of an undeclared
> variable in the RHS.)  If they are working then something odd is going on,
> and since you say they are then...something odd is going on.
>
> BTW, the error you're getting now is an mvel error:
>
> http://mvel.codehaus.org/Strong+Typing+Mode
>
> Since you're currently getting it for "$severity" and not just "severity"
> even though the former does not currently appear in your rule...well that's
> the odd bit I mentioned before.  Somewhere $severity (along with $weight,
> $factor, and $tempScore) is being declared, but it's not in the text of the
> rule as you've provided it.
>
> GreG
> On Dec 3, 2010, at 19:07, "John McKim" <jmckim at comcast.net> wrote:
>
> First off, yes, I am an expert Java programmer, not just a Drools expert -
> yet.  If you took the time to read the post, you would have found that the
> answer that was provided to me “DIDN’T WORK”.  Never mind, I’ll figure it
> out myself.  Goodby!    From: rules-users-bounces at lists.jboss.org [mailto:
> rules-users-bounces at lists.jboss.org] On Behalf Of Greg Barton
> Sent: Friday, December 03, 2010 7:26 PM
> To: Rules Users List
> Subject: Re: [rules-users] Rules in App Server Error  You made the same
> error in three other places.  Fix them.  Are you familiar with the java
> language?
>
> GreG
> On Dec 3, 2010, at 15:15, "John McKim" <jmckim at comcast.net> wrote:Thanks
> for the reply Mauricio.  I tried what you said using this modified
> rule: rule "medicalHistoryBleedingRiskFactors.gastritis rule"salience 20
> when        # find patients who indicated that they have
> MedicalHistoryBleedingRiskFactors: gastritis        $patient :
> Patient(medicalHistoryBleedingRiskFactors.gastritis > 0)    then
> String severity = $patient.medicalHistoryBleedingRiskFactors.gastritis;
>         $weight = 5;        $factor = .1;        $tempScore =
> $factor;        $tempScore = $tempScore * $weight;        $tempScore =
> $tempScore * $severity;        # Now add this risk score to the accumlated
> risk score        $patient.score = $patient.score + $tempScore;
> $patient.problem = new
> String("MedicalHistoryBleedingRiskFactors.gastritis");end But I got this
> exception in the client (I
>  am using 5.1.1 by the way): Exception in thread "Thread-4"
> java.lang.RuntimeException: Unable to build expression for 'consequence':
> [Error: Failed to compile: 1 compilation error(s):  - (1,9) unqualified type
> in strict mode for: $severity][Near : {... Unknown ....}]
> ^[Line: 1, Column: 0] '        String severity =
> $patient.medicalHistoryBleedingRiskFactors.gastritis;         $weight =
> 5;        $factor = .1;        $tempScore = $factor;        $tempScore =
> $tempScore * $weight;        $tempScore = $tempScore * $severity;        //
> Now add this risk score to the accumlated risk score        $patient.score =
> $patient.score + $tempScore;        $patient.problem = new
> String("MedicalHistoryBleedingRiskFactors.gastritis");' : [Rule
> name='medicalHistoryBleedingRiskFactors.gastritis rule']         at
>  com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin.createLevel1KnowledgeBase(LocalRuleEnginePlugin.java:107)
> at
> com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin.access$100(LocalRuleEnginePlugin.java:22)
> at
> com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin$InitializeRuleEngine.run(LocalRuleEnginePlugin.java:192) When
> I took out the String severity and used just $severity:  it works fine.
> Just on the App server does it fail. From:
> rules-users-bounces at lists.jboss.org [mailto:
> rules-users-bounces at lists.jboss.org] On Behalf Of Mauricio Salatino
> Sent: Friday, December 03, 2010 3:36 PM
> To: Rules Users List
> Subject: Re: [rules-users] Rules in App Server Error that's weird.. you are
> using a varible that you never define in the Right Hand Side.
> $severity was never defined. In the RHS remember that you can write pure
> java. So if you want a variable called severity you should declare it as:
> String severity = $patient.medicalHistoryBleedingRiskFactors.gastritis;
> Greetings. 2010/12/3 John McKim <jmckim at comcast.net>I'm having a problem
> that I can't seem to figure out.  I have rules that run in a client program
> with no problem - about 125 rules in all.  When I try to run these same
> rules in an App Server (GlassFish) I get several rules (about 5) that have
> an error on initialization.  Here is the error message followed by the rule.
>
> *******************************************
> SEVERE: java.lang.RuntimeException: Unable to build expression for
> 'consequence': [Error: not a statement, or badly formed structure]
> [Near : {... $severity;
>                    ....}]
>                      ^
> [Line: 1, Column: 233] '        $severity =
> $patient.medicalHistoryBleedingRiskFactors.gastritis;
>         $weight = 5;
>         $factor = .1;
>         $tempScore = $factor;
>         $tempScore = $tempScore * $weight;
>         $tempScore = $tempScore * $severity;
>         // Now add this risk score to the accumlated risk score
>         $patient.score = $patient.score + $tempScore;
>         $patient.problem = new
> String("MedicalHistoryBleedingRiskFactors.gastritis");
> ' : [Rule name='medicalHistoryBleedingRiskFactors.gastritis rule']
> **********************************************
> rule "medicalHistoryBleedingRiskFactors.gastritis rule"
> salience 20
>     when
>         # find patients who indicated that they have
> MedicalHistoryBleedingRiskFactors: gastritis
>         $patient : Patient(medicalHistoryBleedingRiskFactors.gastritis > 0)
>     then
>         $severity = $patient.medicalHistoryBleedingRiskFactors.gastritis;
>         $weight = 5;
>         $factor = .1;
>         $tempScore = $factor;
>         $tempScore = $tempScore * $weight;
>         $tempScore = $tempScore * $severity;
>         # Now add this risk score to the accumlated risk score
>         $patient.score = $patient.score + $tempScore;
>         $patient.problem = new
> String("MedicalHistoryBleedingRiskFactors.gastritis");
> end As I said, this rule runs fine in a client app – when I run the same
> rules in app server I get an error.  This is only happening in 5 out of 125
> rules, and only during initialization using
> builder.add(ResourceFactory.newClassPathResource(file).
> Thanks.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> --
>  - CTO @ http://www.plugtree.com
>  - MyJourney @ http://salaboy.wordpress.com
>  - Co-Founder @ http://www.jbug.com.ar
>
>  - Salatino "Salaboy" Mauricio
> -_______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
>
> https://lists.jboss.org/mailman/listinfo/rules-users_______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
 - CTO @ http://www.plugtree.com
 - MyJourney @ http://salaboy.wordpress.com
 - Co-Founder @ http://www.jbug.com.ar

 - Salatino "Salaboy" Mauricio -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101204/0770640a/attachment.html 


More information about the rules-users mailing list