[rules-users] Re: Missing package name for rule package.
Ronald R. DiFrango
ron.difrango at gmail.com
Fri Jul 6 16:52:26 EDT 2007
Please ignore this, I figured it out!
On 7/6/07, Ronald R. DiFrango <ron.difrango at gmail.com> wrote:
>
> 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/7899f74a/attachment.html
More information about the rules-users
mailing list