网站改版灵感库网站链接分析工具
为避免运行时候错误,drools 7 可以使用DrlParser预先检测 drl文件是否正常。
- parser 过程通常不会返回异常
- ruleDescr = parser.parse(resource); 为空代表有异常
具体测试代码如下:
public class DrlParserTest {public static void main(String[] args) {// 定义规则文件内容Resource resource =new ClassPathResource("org/drools/learn/Error.drl");// 使用 DrlParser 解析规则DrlParser parser = new DrlParser();// RuleDescrBuilder ruleDescrBuilder = new RuleDescrBuilder("ExampleRule");// RuleDescr ruleDescr = null;PackageDescr ruleDescr=null;try {ruleDescr = parser.parse(resource);} catch (DroolsParserException e) {System.err.println("DroolsParserException "+e.getMessage());} catch (IOException e) {System.err.println("IOException "+e.getMessage());}// parser失败 ruleDescr为空if (ruleDescr==null ){List<DroolsError> errs = parser.getErrors();errs.forEach( e->{System.err.println("error: "+e.getMessage());});}// 输出解析后的规则描述System.out.println("Parsed Rule: " + ruleDescr);}
}