Drools - шаблон правила: java.lang. Класс не может быть приведен к org.mvel2.util.MethodStub: - PullRequest
0 голосов
/ 25 декабря 2018

Я новичок в слюнях.Я использую шаблон правил.Я устанавливаю list<model> в службе, и когда я пытаюсь получить объект модели из списка, я получаю:

java.lang.Class не может быть приведен к исключению org.mvel2.util.MethodStub.

Кто-нибудь может подсказать, как получить объект модели из Списка, переданного из класса обслуживания?

Класс обслуживания

        List<ItemRule> itemRuleList = new ArrayList<>();
        ItemRule itemRule = new ItemRule();
        itemRule.setId(1);
        itemRule.setPrice(10005);
        itemRule.setType("watch");
        itemRule.setDiscount(10);
        itemRuleList.add(itemRule);

        List<ItemRules> itemRulesList = new ArrayList<>();
        ItemRules itemRules = new ItemRules();
        itemRules.setItemRuleList(itemRuleList);
        itemRulesList.add(itemRules);


        KieHelper kieHelper = new KieHelper();
        kieHelper.addResource(ResourceFactory.newClassPathResource("process/item.bpmn2"), ResourceType.BPMN2);
        //kieHelper.addResource(ResourceFactory.newClassPathResource("rules/item-rules.drl"), ResourceType.DRL);
        kieHelper.addContent(objectDataCompiler.compile(itemRulesList, new FileInputStream("/rules/item-rules.dtl")), ResourceType.DRL);
        KieSession kieSession = kieHelper.getKieContainer().newKieSession(); 

item-rules.dtl

template header

itemRuleList

package rules;

import com.test.rules.ItemRules;

import com.test.rules.ItemRule;

import com.test.model.Item;

import java.util.ArrayList;

import java.util.List; 

template "itemRulesTemplate"

rule "Item Rules_@{row.rowNumber}"

ruleflow-group "type"

when

    $item: Item()

    $itemRules: ItemRule() from @{itemRuleList}

then
    System.out.println("id="+ $item);

    System.out.println("ageLimit="+ @{ageLimit});

end

end template
...