编程编译规则文件

当通过编译编译规则文件时, 目录必须是 src/main/resources/ , 否则会报WARN ,无法检测到错误:

WARN "No files found for KieBase defaultKieBase"

编程编译文件如下:

    /**
     * 尝试编译单条规则  
     */
    @Override
    public RuleManagerResponse tryCompileSingleRules(RuleManagerRequest req) {
        logger.info("开始试编译规则 :" + req.getContent());
        RuleManagerResponse response = new RuleManagerResponse();
        
        String baseName = TRY_COMPILE_BASE + req.getPackageName();
        String sessionName = TRY_COMPILE_SESSION + req.getFileName();
        
        KieServices ks = KieServices.Factory.get();
        
        KieModuleModel kmodulemodel = ks.newKieModuleModel();

        KieBaseModel kmodel = kmodulemodel.newKieBaseModel(baseName);
        
        kmodel.addPackage(baseName);
        kmodel.newKieSessionModel(sessionName);
        
        KieFileSystem kf = ks.newKieFileSystem();
        kf.write(TRY_COMPILE_PATH + baseName + "/" + sessionName, req.getContent());
        
        String xml = kmodulemodel.toXML();

        kf.writeKModuleXML(xml);
        
        logger.debug(xml);
        
        KieBuilder kb = ks.newKieBuilder(kf);
        
        kb.buildAll();
        
        if (kb.getResults().hasMessages(Message.Level.ERROR)) {
            
            logger.info("试编译出现错误信息:" + kb.getResults().toString());
            
            response.setError(kb.getResults().toString());
            return response;
        }
        
        logger.info("试编译成功, 删除之。。。"); 
        
        kmodulemodel.removeKieBaseModel(baseName);
        xml = kmodulemodel.toXML();
        kf.writeKModuleXML(xml);
        kf.delete(TRY_COMPILE_PATH + baseName + "/" + sessionName);
        KieBuilder kieBuilder = ks.newKieBuilder(kf);
        kieBuilder.buildAll();
        
        if (kieBuilder.getResults().hasMessages(Message.Level.ERROR)) {
            
            logger.info("试编译成功后删除时 出现错误信息:" + kieBuilder.getResults().toString());

        }
        
        logger.info("试编译成功完成!");
        
        return response;
        
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 3,335评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,956评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,317评论 6 342
  • 我就想这样单纯下去,简简单单,不刻意伪装什么,每天过好自己的生活,努力学习,我始终相信: 单身,说明你有足够的坚持...
    Sun爽阅读 184评论 0 1
  • Oh my lady don't feel so good about yourself. Do you know...
    綦枫Maple阅读 217评论 2 1

友情链接更多精彩内容