[rules-users] Re: Missing package name for rule package.

Ronald R. DiFrango ron.difrango at gmail.com
Fri Jul 6 16:48:34 EDT 2007


Changed the loading order and now I get the following:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.circuitcity.rtvcrms.test.MainBasedTester.testRules(
MainBasedTester.java:31)
    at com.circuitcity.rtvcrms.test.MainBasedTester.main(
MainBasedTester.java:23)
Caused by: java.lang.RuntimeException: Failure loading the Rules
    at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(
RtvDecisionEngine.java:47)
    ... 2 more
Caused by: org.drools.rule.InvalidRulePackage: [1,0]: unknown:1:0 required
(...)+ loop (decision=2) did not match anything;
token=[@0,0:6='created',<8>,1:0]
    at org.drools.rule.Package.checkValidity(Package.java:409)
    at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java
:262)
    at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(
RtvDecisionEngine.java:43)
    ... 2 more

On 7/6/07, Ronald R. DiFrango <ron.difrango at gmail.com> wrote:
>
> I am getting the following exception all of a sudden:
>
> Exception in thread "main" java.lang.ExceptionInInitializerError
>     at com.circuitcity.rtvcrms.test.MainBasedTester.testRules(
> MainBasedTester.java:31)
>     at com.circuitcity.rtvcrms.test.MainBasedTester.main(
> MainBasedTester.java:23)
> Caused by: java.lang.RuntimeException: Failure loading the Rules
>     at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(
> RtvDecisionEngine.java:47)
>     ... 2 more
> Caused by: org.drools.compiler.PackageBuilder$MissingPackageNameException:Missing package name for rule package.
>     at org.drools.compiler.PackageBuilder.validatePackageName (
> PackageBuilder.java:278)
>     at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java
> :214)
>     at org.drools.compiler.PackageBuilder.addPackageFromDrl(
> PackageBuilder.java:147)
>     at com.circuitcity.rtvcrms.rules.RtvDecisionEngine .<clinit>(
> RtvDecisionEngine.java:40)
>     ... 2 more
>
>
> Here are my DRL files:
>
> created on: Dec 7, 2006
> package com.circuitcity.rtvcrms.rules
>
> #list any import classes here.
> import java.math.BigDecimal ;
> import java.math.BigInteger;
> import com.circuitcity.rtvcrms.bw.Constants;
> import com.circuitcity.rtvcrms.bw.DocumentTypes;
> import com.circuitcity.rtvcrms.bw.StatusConstants;
>
> import com.circuitcity.rtvcrms.Adjustment ;
> import com.circuitcity.rtvcrms.DetailLine;
> import com.circuitcity.rtvcrms.EffectivePrice;
> import com.circuitcity.rtvcrms.RepaymentCode;
> import com.circuitcity.rtvcrms.MatchingOutput;
>
> #declare any global variables here
> global java.util.List matchedList;
>
> rule "CM Qty EQ RTV Qty"
>     salience 10
>
>     when
>         cmDetailLine : DetailLine(cmNumber != null, lineNumber != null,
> status != StatusConstants.MATCHED , cmRtvNumber : cmRtvNumber, cmBrand :
> brand , cmModel : model, cmQuantity : availableQuantity  )
>         rtvDetailLine : DetailLine(rtvNumber != null, rtvNumber ==
> cmRtvNumber, lineNumber != null, status != StatusConstants.MATCHED , brand
> == cmBrand, model == cmModel, availableQuantity == cmQuantity )
>     then
>         System.out.println(StatusConstants.MATCHED);
>
>         MatchingOutput output =
>             buildMatchingOutput(
>                 rtvDetailLine.getBrand(),
>                 rtvDetailLine.getClazz(),
>                 cmDetailLine.getLineNumber(),
>                 cmDetailLine.getCmNumber(),
>                 (String)null, // defTag
>                 rtvDetailLine.getEffectivePrice(),
>                 (BigDecimal)null, // keyRecNo
>                 rtvDetailLine.getItemCost(),
>                 rtvDetailLine.getAvailableQuantity(),
>                 rtvDetailLine.getModel (),
>                 (String)null, // originalRepaymentCode
>                 (BigDecimal)null, // rrLineNumber
>                 rtvDetailLine.getLineNumber(),
>                 rtvDetailLine.getRtvNumber(),
>                 StatusConstants.MATCHED,
>                 DocumentTypes.RTV_CM,
>                 (String)null); // vendorNumber
>
>         matchedList.add(output);
>
>         cmDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY );
>         cmDetailLine.setStatus(StatusConstants.MATCHED);
>         rtvDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
>         rtvDetailLine.setStatus(StatusConstants.MATCHED);
> end
>
> rule "RNR Qty EQ RTV Qty"
>     salience 10
>
>     when
>         rnrDetailLine : DetailLine(keyRecNo != null, lineNumber != null,
> status != StatusConstants.MATCHED, cmRtvNumber : cmRtvNumber, cmBrand :
> brand , cmModel : model, cmQuantity : availableQuantity   )
>         rtvDetailLine : DetailLine(rtvNumber != null, rtvNumber ==
> cmRtvNumber, lineNumber != null, status != StatusConstants.MATCHED, brand
> == cmBrand, model == cmModel, availableQuantity == cmQuantity )
>     then
>         System.out.println(StatusConstants.MATCHED);
>
>         MatchingOutput output =
>             buildMatchingOutput(
>                 rtvDetailLine.getBrand(),
>                 rtvDetailLine.getClazz (),
>                 (BigDecimal)null, // cmDetailLine.getLineNumber(),
>                 (String)null, // cmDetailLine.getCmNumber(),
>                 (String)null, // defTag
>                 rtvDetailLine.getEffectivePrice (),
>                 rnrDetailLine.getKeyRecNo(), // keyRecNo
>                 rtvDetailLine.getItemCost(),
>                 rtvDetailLine.getAvailableQuantity(),
>                 rtvDetailLine.getModel(),
>                 (String)null, // originalRepaymentCode
>                 rnrDetailLine.getLineNumber(), // rrLineNumber
>                 rtvDetailLine.getLineNumber(),
>                 rtvDetailLine.getRtvNumber(),
>                 StatusConstants.MATCHED,
>                 DocumentTypes.RTV_RR,
>                 (String)null); // vendorNumber
>
>         matchedList.add(output);
>
>         rnrDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
>         rnrDetailLine.setStatus(StatusConstants.MATCHED);
>         rtvDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
>         rtvDetailLine.setStatus(StatusConstants.MATCHED);
> end
>
> #created on: Apr 10, 2007
> package com.circuitcity.rtvcrms.rules
>
> #list any import classes here.
> import java.math.BigDecimal;
>
> import com.circuitcity.rtvcrms.bw.ModelDiscrepancyOutput;
> import com.circuitcity.rtvcrms.bw.StatusConstants ;
> import com.circuitcity.rtvcrms.Adjustment;
> import com.circuitcity.rtvcrms.DetailLine;
> import com.circuitcity.rtvcrms.RepaymentCode;
> import com.circuitcity.rtvcrms.MatchingOutput;
> import org.drools.WorkingMemory ;
> import org.drools.QueryResults;
> import org.drools.QueryResult;
> import java.util.Iterator;
>
> #declare any global variables here
>
> rule "Sum CM"
>     salience 90
>
>     when
>         mdOutput : ModelDiscrepancyOutput ()
>         repaymentCode : RepaymentCode( code == "MD")
>         cmAdjustment : Adjustment(cmNumber != null, lineNumber != null,
> originalRepaymentCode == "MD" )
>     then
>         System.out.println ("Sum CM");
>         mdOutput.setSumCmAndRnr(cmAdjustment.getAvailableQuantity());
> end
>
> Any thoughts?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070706/1e39b18b/attachment.html 


More information about the rules-users mailing list