Unable to build new drools rule, error: Rule Compilation error : !!! is exceeding the 65535 bytes limit
Unable to build new drools rule, error: Rule Compilation error : !!! is exceeding the 65535 bytes limit
我创建了 1032 个新的成功规则。当我想创建 1033 时出现了一些错误。
我正在使用 Drools 中的 Knowledge Builder 构建新规则。这是我的代码
public KnowledgeBuilder buildRules(String ruleContent){
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
knowledgeBuilder.add(ResourceFactory.newInputStreamResource(new ByteArrayInputStream(ruleContent.getBytes())),
ResourceType.DRL);
// check the builder for errors
if (knowledgeBuilder.hasErrors()) {
LOGGER.error(knowledgeBuilder.getErrors().toString());
throw new RuntimeException("Unable to build new drools rule, error: " + knowledgeBuilder.getErrors());
}
return knowledgeBuilder;
}
我希望创建 1033 条规则。 (已经成功了1032条规则)
但是我得到一个错误输出:
Unable to build new drools rule, error: Rule Compilation error : [Rule name='PROM_APPLYCHECKER_2103_G00002382']
com/indolotte/drools/pm/Rule_PROM_APPLYCHECKER_2103_G00002382191827255.java (6:877) : The code of method defaultConsequence(KnowledgeHelper, OptimizerOrderReqEVO, FactHandle)
is exceeding the 65535 bytes limit
65535 是 java 中方法的最大大小,没有办法绕过它。您需要缩短 ruleContent
。
(可能分成几份?不熟悉 Droos 的工作原理。但 "Rule_PROM_APPLYCHECKER_2103_G00002382191827255" 肯定太大了。)
我创建了 1032 个新的成功规则。当我想创建 1033 时出现了一些错误。
我正在使用 Drools 中的 Knowledge Builder 构建新规则。这是我的代码
public KnowledgeBuilder buildRules(String ruleContent){
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
knowledgeBuilder.add(ResourceFactory.newInputStreamResource(new ByteArrayInputStream(ruleContent.getBytes())),
ResourceType.DRL);
// check the builder for errors
if (knowledgeBuilder.hasErrors()) {
LOGGER.error(knowledgeBuilder.getErrors().toString());
throw new RuntimeException("Unable to build new drools rule, error: " + knowledgeBuilder.getErrors());
}
return knowledgeBuilder;
}
我希望创建 1033 条规则。 (已经成功了1032条规则) 但是我得到一个错误输出:
Unable to build new drools rule, error: Rule Compilation error : [Rule name='PROM_APPLYCHECKER_2103_G00002382']
com/indolotte/drools/pm/Rule_PROM_APPLYCHECKER_2103_G00002382191827255.java (6:877) : The code of method defaultConsequence(KnowledgeHelper, OptimizerOrderReqEVO, FactHandle)
is exceeding the 65535 bytes limit
65535 是 java 中方法的最大大小,没有办法绕过它。您需要缩短 ruleContent
。
(可能分成几份?不熟悉 Droos 的工作原理。但 "Rule_PROM_APPLYCHECKER_2103_G00002382191827255" 肯定太大了。)