Hi All,

I have a problem with rule mediator.

I defined input facts in rule mediator. But when im trying to callout my
java method with facts as argument i had an error like that when deploying
proxy:

ERROR - RuleMediatorFactory Can not create the rule engine 
org.wso2.carbon.rule.common.exception.RuleConfigurationException: Error
during creating rule set: Rule Compilation error : [Rule name='test rule']

com/example/rule/Rule_test_rule1466459032.java (13:83) : Unknown variable or
type "Kwota_Inwestycji"
        com/example/rule/Rule_test_rule1466459032.java (13:97) : Unknown 
variable
or type "Rate_Up_Front"
        com/example/rule/Rule_test_rule1466459032.java (13:112) : Unknown 
variable
or type "Assumed_Return"
        com/example/rule/Rule_test_rule1466459032.java (13:127) : Unknown 
variable
or type "Czasokres_MTHS"
        com/example/rule/Rule_test_rule1466459032.java (13:147) : Unknown 
variable
or type "Rate_Redemption_Fee"
        com/example/rule/Rule_test_rule1466459032.java (13:160) : Unknown 
variable
or type "Rate_mgm_Fee"
        com/example/rule/Rule_test_rule1466459032.java (13:176) : Unknown 
variable
or type "Rate_Cost_Other"
        com/example/rule/Rule_test_rule1466459032.java (13:193) : Unknown 
variable
or type "Rate_Distributor"
        com/example/rule/Rule_test_rule1466459032.java (13:210) : Unknown 
variable
or type "Rate_Success_Fee"
        com/example/rule/Rule_test_rule1466459032.java (13:224) : Unknown 
variable
or type "Czasokres_YRS"
...

I tried to define variable types like this  in rule :

                                        <brs:rule resourceType="regular"
sourceType="inline">

                                        package com.example.rule
                                        
                                        //list imports here
                                        import com.mifdi.MIFDI;
                                        
                                        //declare any global variables here
                                        
                                        
                                        
                                        rule "test rule"
                                        
                                        when 
                                        
                                        Kwota_Inwestycji: Double()
                                        Rate_Up_Front: Double()
                                        Assumed_Return: Double()
                                        Czasokres_MTHS: Double()
                                        Rate_Redemption_Fee: Double()
                                        Rate_mgm_Fee: Double()
                                        Rate_Cost_Other: Double()
                                        Rate_Distributor: Double()
                                        Rate_Success_Fee: Double()
                                        Czasokres_YRS: Double()
                                
                                        
                                        Calculate: String()
                                        eval( Calculate.equals("true") )
                                        then
                                        
update(drools.getWorkingMemory().getFactHandle(Result),);
                                        
System.out.println("----------------------" +
MIFDI.getResult(Kwota_Inwestycji,Rate_Up_Front,Assumed_Return,Czasokres_MTHS,Rate_Redemption_Fee,Rate_mgm_Fee,Rate_Cost_Other,Rate_Distributor,Rate_Success_Fee,Czasokres_YRS)
+ "------");
                                        
                                        end
                                </brs:rule>

That makes no error in deploy but when i invoke proxy i got end of memory
and EI is not responding.
Java method is tested and its not a problem in here. Where should i define
variables and their types, to make it work ?


Below my proxy soruce:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"; name="MIFIDBussinessRules"
transports="http https" startOnLoad="true" trace="disable">
    <target>
        <inSequence>
            <property xmlns:ns0="MIDIF" name="INPUT"
expression="//ns0:Request" scope="default" type="OM"/>
            <log level="full"/>
            <brs:rule xmlns:brs="http://wso2.org/carbon/rules";>
                <brs:source>$INPUT</brs:source>
                <brs:target xpath="" resultXpath=""
action="replace">$OUTPUT</brs:target>
                <brs:ruleSet>
                    <brs:properties/>
                    <brs:rule resourceType="regular" sourceType="inline">

                                        package com.example.rule
                                        
                                        //list imports here
                                        import com.mifdi.MIFDI;
                                        
                                        //declare any global variables here
                                        
                                        
                                        rule "test rule"
                                        
                                        when 
                                        // Kwota_Inwestycji: Double()
                                        // Rate_Up_Front: Double()
                                        // Assumed_Return: Double()
                                        // Czasokres_MTHS: Double()
                                        // Rate_Redemption_Fee: Double()
                                        // Rate_mgm_Fee: Double()
                                        // Rate_Cost_Other: Double()
                                        // Rate_Distributor: Double()
                                        // Rate_Success_Fee: Double()
                                        // Czasokres_YRS: Double()
                        
                                
                                        
                                        Calculate: String()
                                        eval( Calculate.equals("true") )
                                        then
                                        
System.out.println("----------------------" +
MIFDI.getResult(Kwota_Inwestycji,Rate_Up_Front,Assumed_Return,Czasokres_MTHS,Rate_Redemption_Fee,Rate_mgm_Fee,Rate_Cost_Other,Rate_Distributor,Rate_Success_Fee,Czasokres_YRS)
+ "------");
                                        
                                        end
                                </brs:rule>
                </brs:ruleSet>
                <brs:input namespace="MIDIF" wrapperElementName="facts">
                    <brs:fact xmlns:ns0="MIDIF" elementName="Calculate"
namespace="MIDIF" type="java.lang.String" xpath="//ns0:Calculate"/>
                    <brs:fact xmlns:ns0="MIDIF"
elementName="Kwota_Inwestycji" namespace="MIDIF" type="java.lang.Double"
xpath="//ns0:Kwota_Inwestycji"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Rate_Up_Front"
namespace="MIDIF" type="java.lang.Double" xpath="//ns0:Rate_Up_Front"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Assumed_Return"
namespace="MIDIF" type="java.lang.Double" xpath="//ns0:Assumed_Return"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Czasokres_MTHS"
namespace="MIDIF" type="java.lang.Double" xpath="//ns0:Czasokres_MTHS"/>
                    <brs:fact xmlns:ns0="MIDIF"
elementName="Rate_Redemption_Fee" namespace="MIDIF" type="java.lang.Double"
xpath="//ns0:Rate_Redemption_Fee"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Rate_mgm_Fee"
namespace="MIDIF" type="java.lang.Double" xpath="//ns0:Rate_mgm_Fee"/>
                    <brs:fact xmlns:ns0="MIDIF"
elementName="Rate_Cost_Other" namespace="MIDIF" type="java.lang.Double"
xpath="//ns0:Rate_Cost_Other"/>
                    <brs:fact xmlns:ns0="MIDIF"
elementName="Rate_Distributor" namespace="MIDIF" type="java.lang.Double"
xpath="//ns0:Rate_Distributor"/>
                    <brs:fact xmlns:ns0="MIDIF"
elementName="Rate_Success_Fee" namespace="MIDIF" type="java.lang.Double"
xpath="//ns0:Rate_Success_Fee"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Czasokres_YRS"
namespace="MIDIF" type="java.lang.Double" xpath="//ns0:Czasokres_YRS"/>
                    <brs:fact xmlns:ns0="MIDIF" elementName="Result"
namespace="MIDIF" type="java.lang.Float" xpath="//ns0:Result"/>
                </brs:input>
                <brs:output namespace="MIDIF" wrapperElementName="out">
                    <brs:fact elementName="Result" namespace="MIDIF"
type="java.lang.Float"/>
                </brs:output>
            </brs:rule>
            <log level="full">
                <property name="OUTPUT"
expression="get-property('OUTPUT')"/>
            </log>
            <loopback/>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
        <faultSequence/>
    </target>
</proxy>


Thanks & Regards,
Melodias



--
Sent from: http://wso2-oxygen-tank.10903.n7.nabble.com/WSO2-Development-f3.html
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to