RuleEngine1

public RulesEngine2(String rulesFile)
        throws RulesEngineException
    {
        super();
        try
        {
            //解决找不到类的问题;
            PackageBuilderConfiguration kcfg = new PackageBuilderConfiguration();
            JavaDialectConfiguration javaConf = (JavaDialectConfiguration)kcfg.getDialectConfiguration("java");
            javaConf.setCompiler(JavaDialectConfiguration.JANINO);      //设置JANINO动态编译;
           
            KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kcfg);
            System.out.println("加入业务特征DRL文件:" + rulesFile);
            kbuilder.add(ResourceFactory.newFileResource(rulesFile), ResourceType.DRL);
            Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
            KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
            kbase.addKnowledgePackages(pkgs);
            ksession = kbase.newStatefulKnowledgeSession();
        }
        catch (Exception e)
        {
            throw new RulesEngineException("Could not load/compile rules file: " + rulesFile, e);
        }
    }

你可能感兴趣的:(Engine)