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

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


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/949d6214/attachment.html 


More information about the rules-users mailing list