[rules-users] Rules in App Server Error
Greg Barton
greg_barton at yahoo.com
Fri Dec 3 19:25:40 EST 2010
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101203/011d2204/attachment.html
More information about the rules-users
mailing list