我在执行一些drools规则时遇到了一些问题。当通过intelijj执行javafx应用程序时,代码运行正常,但通过java webStart(jnlp)运行时失败。 错误是:Drools规则“XXX”访问被拒绝的异常执行结果
异常在defaultpkg执行的规则“人出生日期或锡FATCA”后果:java.security.AccessControlException:访问被拒绝(“java.lang.RuntimePermission”“accessClassInPackage.sun.reflect.generics .reflectiveObjects“) 在org.drools.core.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) 在org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1083)
.....
错误的规则是随机的,它并不总是t他同样的规则失败了。 在这种情况下,规则是:
rule "Person DOB or TIN FATCA"
when
tr : TaxReturn(taxAuthority != Country.ZA)
fi : FinancialInstitution () from tr.financialInstitution
ar : AccountReport (accountHolderType == AccountHolderType.Individual) from fi.accountReport
ah : AccountHolder () from ar.accountHolder
pe : Person ((birthDate == null || birthDate.toString().isEmpty()) && taxIdentification.isEmpty()) from ah.individual
then
Message msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR001",pe.getIndex(),"birthDate", pe.getIndex());
trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg);
msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idNumber", pe.getIndex());
trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg);
msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idType", pe.getIndex());
trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg);
msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idCountry", pe.getIndex());
trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg);
end
此外,错误只发生在某些条件下,用充满不同的对象 任何帮助表示赞赏。