Guys:

I am working through a simple example for loading rules.  I am running jdk 1.5, 
eclipse 3.1.1, and drools2.5 final.

    When I run the application it complains about the rules.  This is the rule 
set

   <?xml version="1.0" encoding="UTF-8"?>
<rule-set name="BusinessRuleSample"
   xmlns="http://drools.org/rules";
   xmlns:java="http://drools.org/semantics/java";
   xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";
         xs:schemaLocation="http://drools.org/rules rules.xsd
                            http://drools.org/semantics/java java.xsd">
                      
<!-- Import the Java Obje ts thate are referenced in the rules -->
<java:import>java.lang.Object</java:import>
<java:import>java.lang.String</java:import>
<java:import>com.company.dept.product.domain.StockOffer</java:import>

<!-- A Java utility function we reference in the rules -->
  <java:functions>
    public void printStock(com.company.dept.product.domain.StockOffer stock){
       System.out.println("Name:"     + stock.getStockName() 
                          + " Price:" + stock.getStockPrice() 
                          + " BUY:"   + stock.getRecommendPurchase());
    }
  </java:functions>
  
  <rule name="Stock Price Low Enough">
      <!-- parameters to pass to business rule -->
     <parameter identifier="stockOffer">
        <class>StockOffer</class>
     </parameter>
     <!--  Conditions or 'left hand side' (LHS) that must be met 
           for business rule to fire-->
     <java:condition>stockOffer.getRecommendPurchase() == null </java:condition>
     <java:condition>stockOffer.getStockPrice() &lt; 100 </java:condition>
     <java:consequence>
              stockOffer.setRecommendPurchase(StockOffer.YES);
              printStock(stockOffer);
     </java:consequence> 
  </rule>
</rule-set>

  I am getting this error:
[start of error]
org.drools.semantics.java.JavaSemanticCompileError: A problem occured compiling 
the embedded code: 
drools/org/businessrulesample_1141764314250/java/Stock_Price_Low_Enough_0.java(30)
Cannot make a static reference to the non-static method printStock(StockOffer) 
from the type Function_0_0 
[end of error]

Any insight would be greatly appreciated.....

Russ


Reply via email to